[*] Update from v1.6.7 (2020-09-24) to v2.1.2 (2023-04-24)

This commit is contained in:
Reece Wilson 2023-10-26 16:57:45 +01:00
parent 7fe74ec057
commit 8654ea28d6
224 changed files with 19984 additions and 10297 deletions

2
.gitattributes vendored
View File

@ -2,9 +2,11 @@
* text eol=lf * text eol=lf
*.png binary *.png binary
*.pdn binary *.pdn binary
*.jpg binary
*.sln binary *.sln binary
*.suo binary *.suo binary
*.vcproj binary *.vcproj binary
*.patch binary *.patch binary
*.dll binary *.dll binary
*.lib binary *.lib binary
*.exe binary

1
.gitignore vendored
View File

@ -3,6 +3,7 @@ ide/vs20??/*.opendb
ide/vs20??/*.user ide/vs20??/*.user
ide/vs20??/*.vcxproj.filters ide/vs20??/*.vcxproj.filters
ide/vs20??/.vs ide/vs20??/.vs
ide/vs20??/VTune*
out/ out/
docs/ docs/
*.zip *.zip

15
Aurora.json Normal file
View File

@ -0,0 +1,15 @@
{
"name": "mimalloc",
"type": "generic",
"sourcePaths": "src",
"include": "include",
"excludes": [
"src/page-queue.c",
"src/alloc-override.c",
"src/prim/*/*.*",
"src/static.c"
],
"sources": [
"src/prim/prim.c"
]
}

View File

@ -1,367 +0,0 @@
cmake_minimum_required(VERSION 3.0)
project(libmimalloc C CXX)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
option(MI_SECURE "Use full security mitigations (like guard pages, allocation randomization, double-free mitigation, and free-list corruption detection)" OFF)
option(MI_DEBUG_FULL "Use full internal heap invariant checking in DEBUG mode (expensive)" OFF)
option(MI_PADDING "Enable padding to detect heap block overflow (used only in DEBUG mode)" ON)
option(MI_OVERRIDE "Override the standard malloc interface (e.g. define entry points for malloc() etc)" ON)
option(MI_XMALLOC "Enable abort() call on memory allocation failure by default" OFF)
option(MI_SHOW_ERRORS "Show error and warning messages by default (only enabled by default in DEBUG mode)" OFF)
option(MI_USE_CXX "Use the C++ compiler to compile the library (instead of the C compiler)" OFF)
option(MI_SEE_ASM "Generate assembly files" OFF)
option(MI_INTERPOSE "Use interpose to override standard malloc on macOS" ON)
option(MI_OSX_ZONE "Use malloc zone to override standard malloc on macOS" OFF) # enables interpose as well
option(MI_LOCAL_DYNAMIC_TLS "Use slightly slower, dlopen-compatible TLS mechanism (Unix)" OFF)
option(MI_BUILD_SHARED "Build shared library" ON)
option(MI_BUILD_STATIC "Build static library" ON)
option(MI_BUILD_OBJECT "Build object library" ON)
option(MI_BUILD_TESTS "Build test executables" ON)
option(MI_DEBUG_TSAN "Build with thread sanitizer (needs clang)" OFF)
option(MI_DEBUG_UBSAN "Build with undefined-behavior sanitizer (needs clang++)" OFF)
option(MI_CHECK_FULL "Use full internal invariant checking in DEBUG mode (deprecated, use MI_DEBUG_FULL instead)" OFF)
include("cmake/mimalloc-config-version.cmake")
set(mi_sources
src/stats.c
src/random.c
src/os.c
src/arena.c
src/region.c
src/segment.c
src/page.c
src/alloc.c
src/alloc-aligned.c
src/alloc-posix.c
src/heap.c
src/options.c
src/init.c)
# -----------------------------------------------------------------------------
# Converience: set default build type depending on the build directory
# -----------------------------------------------------------------------------
if (NOT CMAKE_BUILD_TYPE)
if ("${CMAKE_BINARY_DIR}" MATCHES ".*(D|d)ebug$" OR MI_DEBUG_FULL MATCHES "ON")
message(STATUS "No build type selected, default to: Debug")
set(CMAKE_BUILD_TYPE "Debug")
else()
message(STATUS "No build type selected, default to: Release")
set(CMAKE_BUILD_TYPE "Release")
endif()
endif()
if("${CMAKE_BINARY_DIR}" MATCHES ".*(S|s)ecure$")
message(STATUS "Default to secure build")
set(MI_SECURE "ON")
endif()
# -----------------------------------------------------------------------------
# Process options
# -----------------------------------------------------------------------------
if(CMAKE_C_COMPILER_ID MATCHES "MSVC|Intel")
set(MI_USE_CXX "ON")
endif()
if(MI_OVERRIDE MATCHES "ON")
message(STATUS "Override standard malloc (MI_OVERRIDE=ON)")
if(APPLE)
if(MI_OSX_ZONE MATCHES "ON")
# use zone's on macOS
message(STATUS " Use malloc zone to override malloc (MI_OSX_ZONE=ON)")
list(APPEND mi_sources src/alloc-override-osx.c)
list(APPEND mi_defines MI_OSX_ZONE=1)
if(NOT MI_INTERPOSE MATCHES "ON")
message(STATUS " (enabling INTERPOSE as well since zone's require this)")
set(MI_INTERPOSE "ON")
endif()
endif()
if(MI_INTERPOSE MATCHES "ON")
# use interpose on macOS
message(STATUS " Use interpose to override malloc (MI_INTERPOSE=ON)")
list(APPEND mi_defines MI_INTERPOSE)
endif()
endif()
endif()
if(MI_SECURE MATCHES "ON")
message(STATUS "Set full secure build (MI_SECURE=ON)")
list(APPEND mi_defines MI_SECURE=4)
endif()
if(MI_SEE_ASM MATCHES "ON")
message(STATUS "Generate assembly listings (MI_SEE_ASM=ON)")
list(APPEND mi_cflags -save-temps)
endif()
if(MI_CHECK_FULL MATCHES "ON")
message(STATUS "The MI_CHECK_FULL option is deprecated, use MI_DEBUG_FULL instead")
set(MI_DEBUG_FULL "ON")
endif()
if(MI_DEBUG_FULL MATCHES "ON")
message(STATUS "Set debug level to full internal invariant checking (MI_DEBUG_FULL=ON)")
list(APPEND mi_defines MI_DEBUG=3) # full invariant checking
endif()
if(MI_PADDING MATCHES "OFF")
message(STATUS "Disable padding of heap blocks in debug mode (MI_PADDING=OFF)")
list(APPEND mi_defines MI_PADDING=0)
endif()
if(MI_XMALLOC MATCHES "ON")
message(STATUS "Enable abort() calls on memory allocation failure (MI_XMALLOC=ON)")
list(APPEND mi_defines MI_XMALLOC=1)
endif()
if(MI_SHOW_ERRORS MATCHES "ON")
message(STATUS "Enable printing of error and warning messages by default (MI_SHOW_ERRORS=ON)")
list(APPEND mi_defines MI_SHOW_ERRORS=1)
endif()
if(MI_DEBUG_TSAN MATCHES "ON")
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
message(STATUS "Build with thread sanitizer (MI_DEBUG_TSAN=ON)")
list(APPEND mi_defines MI_TSAN=1)
list(APPEND mi_cflags -fsanitize=thread -g -O1)
list(APPEND CMAKE_EXE_LINKER_FLAGS -fsanitize=thread)
else()
message(WARNING "Can only use thread sanitizer with clang (MI_DEBUG_TSAN=ON but ignored)")
endif()
endif()
if(MI_DEBUG_UBSAN MATCHES "ON")
if(CMAKE_BUILD_TYPE MATCHES "Debug")
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
message(STATUS "Build with undefined-behavior sanitizer (MI_DEBUG_UBSAN=ON)")
list(APPEND mi_cflags -fsanitize=undefined -g)
list(APPEND CMAKE_EXE_LINKER_FLAGS -fsanitize=undefined)
if (MI_USE_CXX MATCHES "OFF")
message(STATUS "(switch to use C++ due to MI_DEBUG_UBSAN)")
set(MI_USE_CXX "ON")
endif()
else()
message(WARNING "Can only use undefined-behavior sanitizer with clang++ (MI_DEBUG_UBSAN=ON but ignored)")
endif()
else()
message(WARNING "Can only use thread sanitizer with a debug build (CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE})")
endif()
endif()
if(MI_USE_CXX MATCHES "ON")
message(STATUS "Use the C++ compiler to compile (MI_USE_CXX=ON)")
set_source_files_properties(${mi_sources} PROPERTIES LANGUAGE CXX )
set_source_files_properties(src/static.c test/test-api.c test/test-stress PROPERTIES LANGUAGE CXX )
if(CMAKE_CXX_COMPILER_ID MATCHES "AppleClang|Clang")
list(APPEND mi_cflags -Wno-deprecated)
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
list(APPEND mi_cflags -Kc++)
endif()
endif()
# Compiler flags
if(CMAKE_C_COMPILER_ID MATCHES "AppleClang|Clang|GNU")
list(APPEND mi_cflags -Wall -Wextra -Wno-unknown-pragmas -fvisibility=hidden)
if(CMAKE_C_COMPILER_ID MATCHES "GNU")
list(APPEND mi_cflags -Wno-invalid-memory-model)
endif()
endif()
if(CMAKE_C_COMPILER_ID MATCHES "Intel")
list(APPEND mi_cflags -Wall -fvisibility=hidden)
endif()
if(CMAKE_C_COMPILER_ID MATCHES "AppleClang|Clang|GNU|Intel" AND NOT CMAKE_SYSTEM_NAME MATCHES "Haiku")
if(MI_LOCAL_DYNAMIC_TLS MATCHES "ON")
list(APPEND mi_cflags -ftls-model=local-dynamic)
else()
list(APPEND mi_cflags -ftls-model=initial-exec)
endif()
endif()
# Architecture flags
if(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "arm")
list(APPEND mi_cflags -march=native)
endif()
# extra needed libraries
if(WIN32)
list(APPEND mi_libraries psapi shell32 user32 advapi32 bcrypt)
else()
if(NOT ${CMAKE_C_COMPILER} MATCHES "android")
list(APPEND mi_libraries pthread)
find_library(LIBRT rt)
if(LIBRT)
list(APPEND mi_libraries ${LIBRT})
endif()
endif()
endif()
# -----------------------------------------------------------------------------
# Install and output names
# -----------------------------------------------------------------------------
set(mi_install_dir "${CMAKE_INSTALL_PREFIX}/lib/mimalloc-${mi_version}")
if(MI_SECURE MATCHES "ON")
set(mi_basename "mimalloc-secure")
else()
set(mi_basename "mimalloc")
endif()
string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LC)
if(NOT(CMAKE_BUILD_TYPE_LC MATCHES "^(release|relwithdebinfo|minsizerel)$"))
set(mi_basename "${mi_basename}-${CMAKE_BUILD_TYPE_LC}") #append build type (e.g. -debug) if not a release version
endif()
if(MI_BUILD_SHARED)
list(APPEND mi_build_targets "shared")
endif()
if(MI_BUILD_STATIC)
list(APPEND mi_build_targets "static")
endif()
if(MI_BUILD_OBJECT)
list(APPEND mi_build_targets "object")
endif()
if(MI_BUILD_TESTS)
list(APPEND mi_build_targets "tests")
endif()
message(STATUS "")
message(STATUS "Library base name: ${mi_basename}")
message(STATUS "Build type : ${CMAKE_BUILD_TYPE_LC}")
if(MI_USE_CXX MATCHES "ON")
message(STATUS "Compiler : ${CMAKE_CXX_COMPILER}")
else()
message(STATUS "Compiler : ${CMAKE_C_COMPILER}")
endif()
message(STATUS "Install directory: ${mi_install_dir}")
message(STATUS "Build targets : ${mi_build_targets}")
message(STATUS "")
# -----------------------------------------------------------------------------
# Main targets
# -----------------------------------------------------------------------------
# shared library
if(MI_BUILD_SHARED)
add_library(mimalloc SHARED ${mi_sources})
set_target_properties(mimalloc PROPERTIES VERSION ${mi_version} OUTPUT_NAME ${mi_basename} )
target_compile_definitions(mimalloc PRIVATE ${mi_defines} MI_SHARED_LIB MI_SHARED_LIB_EXPORT)
target_compile_options(mimalloc PRIVATE ${mi_cflags})
target_link_libraries(mimalloc PUBLIC ${mi_libraries})
target_include_directories(mimalloc PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:${mi_install_dir}/include>
)
if(WIN32)
# On windows copy the mimalloc redirection dll too.
target_link_libraries(mimalloc PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/bin/mimalloc-redirect.lib)
add_custom_command(TARGET mimalloc POST_BUILD
COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_CURRENT_SOURCE_DIR}/bin/mimalloc-redirect.dll" $<TARGET_FILE_DIR:mimalloc>
COMMENT "Copy mimalloc-redirect.dll to output directory")
endif()
install(TARGETS mimalloc EXPORT mimalloc DESTINATION ${mi_install_dir} LIBRARY)
install(EXPORT mimalloc DESTINATION ${mi_install_dir}/cmake)
endif()
# static library
if (MI_BUILD_STATIC)
add_library(mimalloc-static STATIC ${mi_sources})
set_property(TARGET mimalloc-static PROPERTY POSITION_INDEPENDENT_CODE ON)
target_compile_definitions(mimalloc-static PRIVATE ${mi_defines} MI_STATIC_LIB)
target_compile_options(mimalloc-static PRIVATE ${mi_cflags})
target_link_libraries(mimalloc-static PUBLIC ${mi_libraries})
target_include_directories(mimalloc-static PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:${mi_install_dir}/include>
)
if(WIN32)
# When building both static and shared libraries on Windows, a static library should use a
# different output name to avoid the conflict with the import library of a shared one.
string(REPLACE "mimalloc" "mimalloc-static" mi_output_name ${mi_basename})
set_target_properties(mimalloc-static PROPERTIES OUTPUT_NAME ${mi_output_name})
else()
set_target_properties(mimalloc-static PROPERTIES OUTPUT_NAME ${mi_basename})
endif()
install(TARGETS mimalloc-static EXPORT mimalloc DESTINATION ${mi_install_dir})
endif()
# install include files
install(FILES include/mimalloc.h DESTINATION ${mi_install_dir}/include)
install(FILES include/mimalloc-override.h DESTINATION ${mi_install_dir}/include)
install(FILES include/mimalloc-new-delete.h DESTINATION ${mi_install_dir}/include)
install(FILES cmake/mimalloc-config.cmake DESTINATION ${mi_install_dir}/cmake)
install(FILES cmake/mimalloc-config-version.cmake DESTINATION ${mi_install_dir}/cmake)
if(NOT WIN32 AND MI_BUILD_SHARED)
# install a symlink in the /usr/local/lib to the versioned library
set(mi_symlink "${CMAKE_SHARED_MODULE_PREFIX}${mi_basename}${CMAKE_SHARED_LIBRARY_SUFFIX}")
set(mi_soname "mimalloc-${mi_version}/${mi_symlink}.${mi_version}")
install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${mi_soname} ${mi_symlink} WORKING_DIRECTORY ${mi_install_dir}/..)")
install(CODE "MESSAGE(\"-- Symbolic link: ${CMAKE_INSTALL_PREFIX}/lib/${mi_symlink} -> ${mi_soname}\")")
endif()
# single object file for more predictable static overriding
if (MI_BUILD_OBJECT)
add_library(mimalloc-obj OBJECT src/static.c)
set_property(TARGET mimalloc-obj PROPERTY POSITION_INDEPENDENT_CODE ON)
target_compile_definitions(mimalloc-obj PRIVATE ${mi_defines})
target_compile_options(mimalloc-obj PRIVATE ${mi_cflags})
target_include_directories(mimalloc-obj PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:${mi_install_dir}/include>
)
# the following seems to lead to cmake warnings/errors on some systems, disable for now :-(
# install(TARGETS mimalloc-obj EXPORT mimalloc DESTINATION ${mi_install_dir})
# the FILES expression can also be: $<TARGET_OBJECTS:mimalloc-obj>
# but that fails cmake versions less than 3.10 so we leave it as is for now
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/mimalloc-obj.dir/src/static.c${CMAKE_C_OUTPUT_EXTENSION}
DESTINATION ${mi_install_dir}
RENAME ${mi_basename}${CMAKE_C_OUTPUT_EXTENSION} )
endif()
# -----------------------------------------------------------------------------
# API surface testing
# -----------------------------------------------------------------------------
if (MI_BUILD_TESTS MATCHES "ON")
add_executable(mimalloc-test-api test/test-api.c)
target_compile_definitions(mimalloc-test-api PRIVATE ${mi_defines})
target_compile_options(mimalloc-test-api PRIVATE ${mi_cflags})
target_include_directories(mimalloc-test-api PRIVATE include)
target_link_libraries(mimalloc-test-api PRIVATE mimalloc-static ${mi_libraries})
add_executable(mimalloc-test-stress test/test-stress.c)
target_compile_definitions(mimalloc-test-stress PRIVATE ${mi_defines})
target_compile_options(mimalloc-test-stress PRIVATE ${mi_cflags})
target_include_directories(mimalloc-test-stress PRIVATE include)
target_link_libraries(mimalloc-test-stress PRIVATE mimalloc ${mi_libraries})
enable_testing()
add_test(test_api, mimalloc-test-api)
add_test(test_stress, mimalloc-test-stress)
endif()
# -----------------------------------------------------------------------------
# Set override properties
# -----------------------------------------------------------------------------
if (MI_OVERRIDE MATCHES "ON")
if (MI_BUILD_SHARED)
target_compile_definitions(mimalloc PRIVATE MI_MALLOC_OVERRIDE)
endif()
if(NOT WIN32)
# It is only possible to override malloc on Windows when building as a DLL.
if (MI_BUILD_STATIC)
target_compile_definitions(mimalloc-static PRIVATE MI_MALLOC_OVERRIDE)
endif()
if (MI_BUILD_OBJECT)
target_compile_definitions(mimalloc-obj PRIVATE MI_MALLOC_OVERRIDE)
endif()
endif()
endif()

View File

@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2019 Microsoft Corporation, Daan Leijen Copyright (c) 2018-2021 Microsoft Corporation, Daan Leijen
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@ -1,168 +0,0 @@
# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml
trigger:
- master
- dev
jobs:
- job:
displayName: Windows
pool:
vmImage:
windows-2019
strategy:
matrix:
Debug:
BuildType: debug
cmakeExtraArgs: -DCMAKE_BUILD_TYPE=Debug -DMI_DEBUG_FULL=ON
MSBuildConfiguration: Debug
Release:
BuildType: release
cmakeExtraArgs: -DCMAKE_BUILD_TYPE=Release
MSBuildConfiguration: Release
Secure:
BuildType: secure
cmakeExtraArgs: -DCMAKE_BUILD_TYPE=Release -DMI_SECURE=ON
MSBuildConfiguration: Release
steps:
- task: CMake@1
inputs:
workingDirectory: $(BuildType)
cmakeArgs: .. $(cmakeExtraArgs)
- task: MSBuild@1
inputs:
solution: $(BuildType)/libmimalloc.sln
configuration: '$(MSBuildConfiguration)'
msbuildArguments: -m
- script: ctest --verbose --timeout 120
workingDirectory: $(BuildType)
displayName: CTest
#- script: $(BuildType)\$(BuildType)\mimalloc-test-stress
# displayName: TestStress
#- upload: $(Build.SourcesDirectory)/$(BuildType)
# artifact: mimalloc-windows-$(BuildType)
- job:
displayName: Linux
pool:
vmImage:
ubuntu-18.04
strategy:
matrix:
Debug:
CC: gcc
CXX: g++
BuildType: debug
cmakeExtraArgs: -DCMAKE_BUILD_TYPE=Debug -DMI_DEBUG_FULL=ON
Release:
CC: gcc
CXX: g++
BuildType: release
cmakeExtraArgs: -DCMAKE_BUILD_TYPE=Release
Secure:
CC: gcc
CXX: g++
BuildType: secure
cmakeExtraArgs: -DCMAKE_BUILD_TYPE=Release -DMI_SECURE=ON
Debug++:
CC: gcc
CXX: g++
BuildType: debug-cxx
cmakeExtraArgs: -DCMAKE_BUILD_TYPE=Debug -DMI_DEBUG_FULL=ON -DMI_USE_CXX=ON
Debug Clang:
CC: clang
CXX: clang++
BuildType: debug-clang
cmakeExtraArgs: -DCMAKE_BUILD_TYPE=Debug -DMI_DEBUG_FULL=ON
Release Clang:
CC: clang
CXX: clang++
BuildType: release-clang
cmakeExtraArgs: -DCMAKE_BUILD_TYPE=Release
Secure Clang:
CC: clang
CXX: clang++
BuildType: secure-clang
cmakeExtraArgs: -DCMAKE_BUILD_TYPE=Release -DMI_SECURE=ON
Debug++ Clang:
CC: clang
CXX: clang++
BuildType: debug-clang-cxx
cmakeExtraArgs: -DCMAKE_BUILD_TYPE=Debug -DMI_DEBUG_FULL=ON -DMI_USE_CXX=ON
steps:
- task: CMake@1
inputs:
workingDirectory: $(BuildType)
cmakeArgs: .. $(cmakeExtraArgs)
- script: make -j$(nproc) -C $(BuildType)
displayName: Make
- script: ctest --verbose --timeout 120
workingDirectory: $(BuildType)
displayName: CTest
# - upload: $(Build.SourcesDirectory)/$(BuildType)
# artifact: mimalloc-ubuntu-$(BuildType)
- job:
displayName: macOS
pool:
vmImage:
macOS-10.14
strategy:
matrix:
Debug:
BuildType: debug
cmakeExtraArgs: -DCMAKE_BUILD_TYPE=Debug -DMI_DEBUG_FULL=ON
Release:
BuildType: release
cmakeExtraArgs: -DCMAKE_BUILD_TYPE=Release
Secure:
BuildType: secure
cmakeExtraArgs: -DCMAKE_BUILD_TYPE=Release -DMI_SECURE=ON
steps:
- task: CMake@1
inputs:
workingDirectory: $(BuildType)
cmakeArgs: .. $(cmakeExtraArgs)
- script: make -j$(sysctl -n hw.ncpu) -C $(BuildType)
displayName: Make
- script: ctest --verbose --timeout 120
workingDirectory: $(BuildType)
displayName: CTest
# - upload: $(Build.SourcesDirectory)/$(BuildType)
# artifact: mimalloc-macos-$(BuildType)
# - job:
# displayName: Windows-2017
# pool:
# vmImage:
# vs2017-win2016
# strategy:
# matrix:
# Debug:
# BuildType: debug
# cmakeExtraArgs: -A x64 -DCMAKE_BUILD_TYPE=Debug -DMI_DEBUG_FULL=ON
# MSBuildConfiguration: Debug
# Release:
# BuildType: release
# cmakeExtraArgs: -A x64 -DCMAKE_BUILD_TYPE=Release
# MSBuildConfiguration: Release
# Secure:
# BuildType: secure
# cmakeExtraArgs: -A x64 -DCMAKE_BUILD_TYPE=Release -DMI_SECURE=ON
# MSBuildConfiguration: Release
# steps:
# - task: CMake@1
# inputs:
# workingDirectory: $(BuildType)
# cmakeArgs: .. $(cmakeExtraArgs)
# - task: MSBuild@1
# inputs:
# solution: $(BuildType)/libmimalloc.sln
# configuration: '$(MSBuildConfiguration)'
# - script: |
# cd $(BuildType)
# ctest --verbose --timeout 120
# displayName: CTest

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,18 +0,0 @@
set(mi_version_major 1)
set(mi_version_minor 6)
set(mi_version ${mi_version_major}.${mi_version_minor})
set(PACKAGE_VERSION ${mi_version})
if(PACKAGE_FIND_VERSION_MAJOR)
if("${PACKAGE_FIND_VERSION_MAJOR}" EQUAL "${mi_version_major}")
if ("${PACKAGE_FIND_VERSION_MINOR}" EQUAL "${mi_version_minor}")
set(PACKAGE_VERSION_EXACT TRUE)
elseif("${PACKAGE_FIND_VERSION_MINOR}" LESS "${mi_version_minor}")
set(PACKAGE_VERSION_COMPATIBLE TRUE)
else()
set(PACKAGE_VERSION_UNSUITABLE TRUE)
endif()
else()
set(PACKAGE_VERSION_UNSUITABLE TRUE)
endif()
endif()

View File

@ -1,2 +0,0 @@
include(${CMAKE_CURRENT_LIST_DIR}/mimalloc.cmake)
get_filename_component(MIMALLOC_TARGET_DIR "${CMAKE_CURRENT_LIST_DIR}" PATH)

View File

@ -1,6 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<!-- This file was generated by dvisvgm 2.4.2 --> <!-- This file was generated by dvisvgm 2.4.2 -->
<svg height='167.731pt' version='1.1' viewBox='52.938 54.996 381.624 167.731' width='381.624pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'> <svg height='167.731pt' version='1.1' viewBox='52.938 54.996 381.624 167.731' width='381.624pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>
<rect width="1000%" height="1000%" fill="white"/>
<defs> <defs>
<clipPath id='clip1'> <clipPath id='clip1'>
<path d='M82.148 206.586H434.164V81.34H82.148Z'/> <path d='M82.148 206.586H434.164V81.34H82.148Z'/>

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 76 KiB

View File

@ -1,6 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<!-- This file was generated by dvisvgm 2.4.2 --> <!-- This file was generated by dvisvgm 2.4.2 -->
<svg height='258.383pt' version='1.1' viewBox='106.736 54.996 381.623 258.383' width='381.623pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'> <svg height='258.383pt' version='1.1' viewBox='106.736 54.996 381.623 258.383' width='381.623pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>
<rect width="1000%" height="1000%" fill="white"/>
<defs> <defs>
<clipPath id='clip2'> <clipPath id='clip2'>
<path d='M135.949 251.93H487.961V84.164H135.949Z'/> <path d='M135.949 251.93H487.961V84.164H135.949Z'/>

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 93 KiB

View File

@ -1,6 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<!-- This file was generated by dvisvgm 2.4.2 --> <!-- This file was generated by dvisvgm 2.4.2 -->
<svg height='193.064pt' version='1.1' viewBox='52.938 51.67 381.624 193.064' width='381.624pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'> <svg height='193.064pt' version='1.1' viewBox='52.938 51.67 381.624 193.064' width='381.624pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>
<rect width="1000%" height="1000%" fill="white"/>
<defs> <defs>
<clipPath id='clip7'> <clipPath id='clip7'>
<path d='M82.148 228.594H434.164V60.828H82.148Z'/> <path d='M82.148 228.594H434.164V60.828H82.148Z'/>

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 63 KiB

View File

@ -1,6 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<!-- This file was generated by dvisvgm 2.4.2 --> <!-- This file was generated by dvisvgm 2.4.2 -->
<svg height='255.738pt' version='1.1' viewBox='106.736 54.996 381.624 255.738' width='381.624pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'> <svg height='255.738pt' version='1.1' viewBox='106.736 54.996 381.624 255.738' width='381.624pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>
<rect width="1000%" height="1000%" fill="white"/>
<defs> <defs>
<clipPath id='clip8'> <clipPath id='clip8'>
<path d='M135.949 249.281H487.961V81.519H135.949Z'/> <path d='M135.949 249.281H487.961V81.519H135.949Z'/>

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 82 KiB

View File

@ -1,6 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<!-- This file was generated by dvisvgm 2.4.2 --> <!-- This file was generated by dvisvgm 2.4.2 -->
<svg height='164.687pt' version='1.1' viewBox='52.938 54.996 381.625 164.687' width='381.625pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'> <svg height='164.687pt' version='1.1' viewBox='52.938 54.996 381.625 164.687' width='381.625pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>
<rect width="1000%" height="1000%" fill="white"/>
<defs> <defs>
<clipPath id='clip1'> <clipPath id='clip1'>
<path d='M82.148 203.937H434.164V78.691H82.148Z'/> <path d='M82.148 203.937H434.164V78.691H82.148Z'/>

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 68 KiB

View File

@ -1,6 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<!-- This file was generated by dvisvgm 2.4.2 --> <!-- This file was generated by dvisvgm 2.4.2 -->
<svg height='165.084pt' version='1.1' viewBox='52.938 54.996 381.624 165.084' width='381.624pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'> <svg height='165.084pt' version='1.1' viewBox='52.938 54.996 381.624 165.084' width='381.624pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>
<rect width="1000%" height="1000%" fill="white"/>
<defs> <defs>
<clipPath id='clip5'> <clipPath id='clip5'>
<path d='M82.148 203.937H434.164V78.691H82.148Z'/> <path d='M82.148 203.937H434.164V78.691H82.148Z'/>

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 75 KiB

View File

@ -1,6 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<!-- This file was generated by dvisvgm 2.4.2 --> <!-- This file was generated by dvisvgm 2.4.2 -->
<svg height='258.383pt' version='1.1' viewBox='106.736 54.996 381.623 258.383' width='381.623pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'> <svg height='258.383pt' version='1.1' viewBox='106.736 54.996 381.623 258.383' width='381.623pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>
<rect width="1000%" height="1000%" fill="white"/>
<defs> <defs>
<clipPath id='clip6'> <clipPath id='clip6'>
<path d='M135.949 251.93H487.961V84.164H135.949Z'/> <path d='M135.949 251.93H487.961V84.164H135.949Z'/>

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 93 KiB

View File

@ -1,6 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<!-- This file was generated by dvisvgm 2.4.2 --> <!-- This file was generated by dvisvgm 2.4.2 -->
<svg height='243.704pt' version='1.1' viewBox='106.737 54.995 381.623 243.704' width='381.623pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'> <svg height='243.704pt' version='1.1' viewBox='106.737 54.995 381.623 243.704' width='381.623pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>
<rect width="1000%" height="1000%" fill="white"/>
<defs> <defs>
<clipPath id='clip2'> <clipPath id='clip2'>
<path d='M135.949 249.281H487.961V81.515H135.949Z'/> <path d='M135.949 249.281H487.961V81.515H135.949Z'/>

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 82 KiB

View File

@ -1,6 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<!-- This file was generated by dvisvgm 2.4.2 --> <!-- This file was generated by dvisvgm 2.4.2 -->
<svg height='164.687pt' version='1.1' viewBox='52.938 54.996 381.625 164.687' width='381.625pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'> <svg height='164.687pt' version='1.1' viewBox='52.938 54.996 381.625 164.687' width='381.625pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>
<rect width="1000%" height="1000%" fill="white"/>
<defs> <defs>
<clipPath id='clip7'> <clipPath id='clip7'>
<path d='M82.148 203.937H434.164V78.691H82.148Z'/> <path d='M82.148 203.937H434.164V78.691H82.148Z'/>

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 57 KiB

View File

@ -1,6 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<!-- This file was generated by dvisvgm 2.4.2 --> <!-- This file was generated by dvisvgm 2.4.2 -->
<svg height='196.567pt' version='1.1' viewBox='106.737 54.996 381.623 196.567' width='381.623pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'> <svg height='196.567pt' version='1.1' viewBox='106.737 54.996 381.623 196.567' width='381.623pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>
<rect width="1000%" height="1000%" fill="white"/>
<defs> <defs>
<clipPath id='clip8'> <clipPath id='clip8'>
<path d='M135.949 203.938H487.961V78.692H135.949Z'/> <path d='M135.949 203.938H487.961V78.692H135.949Z'/>

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 72 KiB

View File

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

View File

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 61 KiB

View File

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

View File

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 95 KiB

View File

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

View File

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 81 KiB

View File

@ -0,0 +1,952 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- This file was generated by dvisvgm 2.9.1 -->
<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='381.629pt' height='170.383pt' viewBox='52.934 54.994 381.629 170.383'>
<rect width="1000%" height="1000%" fill="white"/>
<defs>
<clipPath id='clip1'>
<path d='M82.148 209.23H434.164V83.984H82.148Z'/>
</clipPath>
<use id='g3-40' xlink:href='#g0-40' transform='scale(1.143)'/>
<use id='g3-41' xlink:href='#g0-41' transform='scale(1.143)'/>
<use id='g3-78' xlink:href='#g0-78' transform='scale(1.143)'/>
<use id='g3-97' xlink:href='#g0-97' transform='scale(1.143)'/>
<use id='g3-98' xlink:href='#g0-98' transform='scale(1.143)'/>
<use id='g3-99' xlink:href='#g0-99' transform='scale(1.143)'/>
<use id='g3-100' xlink:href='#g0-100' transform='scale(1.143)'/>
<use id='g3-101' xlink:href='#g0-101' transform='scale(1.143)'/>
<use id='g3-102' xlink:href='#g0-102' transform='scale(1.143)'/>
<use id='g3-105' xlink:href='#g0-105' transform='scale(1.143)'/>
<use id='g3-108' xlink:href='#g0-108' transform='scale(1.143)'/>
<use id='g3-109' xlink:href='#g0-109' transform='scale(1.143)'/>
<use id='g3-110' xlink:href='#g0-110' transform='scale(1.143)'/>
<use id='g3-111' xlink:href='#g0-111' transform='scale(1.143)'/>
<use id='g3-112' xlink:href='#g0-112' transform='scale(1.143)'/>
<use id='g3-114' xlink:href='#g0-114' transform='scale(1.143)'/>
<use id='g3-115' xlink:href='#g0-115' transform='scale(1.143)'/>
<use id='g3-116' xlink:href='#g0-116' transform='scale(1.143)'/>
<use id='g3-119' xlink:href='#g0-119' transform='scale(1.143)'/>
<use id='g2-46' xlink:href='#g0-46' transform='scale(.714)'/>
<use id='g2-48' xlink:href='#g0-48' transform='scale(.714)'/>
<use id='g2-49' xlink:href='#g0-49' transform='scale(.714)'/>
<use id='g2-50' xlink:href='#g0-50' transform='scale(.714)'/>
<use id='g2-51' xlink:href='#g0-51' transform='scale(.714)'/>
<use id='g2-52' xlink:href='#g0-52' transform='scale(.714)'/>
<use id='g2-53' xlink:href='#g0-53' transform='scale(.714)'/>
<use id='g2-54' xlink:href='#g0-54' transform='scale(.714)'/>
<use id='g2-55' xlink:href='#g0-55' transform='scale(.714)'/>
<use id='g2-56' xlink:href='#g0-56' transform='scale(.714)'/>
<use id='g2-57' xlink:href='#g0-57' transform='scale(.714)'/>
<use id='g2-120' xlink:href='#g0-120' transform='scale(.714)'/>
<path id='g4-1' d='M1.445-1.245C1.445-1.41 1.305-1.549 1.141-1.549S.837-1.41 .837-1.245S.976-.941 1.141-.941S1.445-1.081 1.445-1.245Z'/>
<path id='g1-82' d='M3.891-2.914C4.806-3.165 5.452-3.811 5.452-4.546C5.452-5.469 4.411-6.223 3.129-6.223H.87V0H1.704V-2.824H3.138L4.842 0H5.703L3.891-2.914ZM1.704-3.407V-5.694H3.022C4.062-5.694 4.671-5.192 4.671-4.546C4.671-3.963 4.125-3.407 3.022-3.407H1.704Z'/>
<path id='g1-97' d='M3.694-2.591C3.694-3.479 3.04-4.133 2.152-4.133C1.569-4.133 1.139-3.981 .708-3.739L.762-3.102C1.21-3.434 1.65-3.569 2.143-3.569C2.645-3.569 2.95-3.165 2.95-2.582V-2.206C1.408-2.17 .395-1.766 .395-1.04C.395-.619 .672 .099 1.453 .099C1.632 .099 2.412 .081 2.977-.341V0H3.694V-2.591ZM2.95-1.255C2.95-1.067 2.95-.843 2.627-.655C2.403-.52 2.107-.484 1.928-.484C1.47-.484 1.085-.699 1.085-1.058C1.085-1.695 2.833-1.722 2.95-1.722V-1.255Z'/>
<path id='g1-101' d='M3.829-1.964C3.829-2.242 3.82-2.923 3.47-3.461C3.093-4.026 2.52-4.133 2.179-4.133C1.139-4.133 .314-3.174 .314-2.026C.314-.843 1.193 .099 2.313 .099C2.744 .099 3.264-.009 3.784-.341L3.73-.959C3.165-.556 2.636-.484 2.322-.484C1.578-.484 1.004-1.139 .977-1.964H3.829ZM1.031-2.493C1.175-3.067 1.614-3.551 2.179-3.551C2.511-3.551 3.12-3.398 3.291-2.493H1.031Z'/>
<path id='g1-105' d='M1.524-6.133H.664V-5.272H1.524V-6.133ZM1.453-3.981H.735V0H1.453V-3.981Z'/>
<path id='g1-108' d='M1.453-6.223H.735V0H1.453V-6.223Z'/>
<path id='g1-109' d='M6.581-2.663C6.581-3.327 6.402-4.08 5.317-4.08C4.564-4.08 4.142-3.622 3.927-3.344C3.865-3.524 3.676-4.08 2.762-4.08C2.053-4.08 1.623-3.667 1.417-3.398V-4.035H.726V0H1.47V-2.188C1.47-2.78 1.704-3.497 2.385-3.497C3.282-3.497 3.282-2.86 3.282-2.6V0H4.026V-2.188C4.026-2.78 4.259-3.497 4.94-3.497C5.837-3.497 5.837-2.86 5.837-2.6V0H6.581V-2.663Z'/>
<path id='g1-116' d='M1.623-3.425H2.914V-3.981H1.623V-5.12H.959V-3.981H.17V-3.425H.933V-1.13C.933-.601 1.049 .099 1.704 .099C2.098 .099 2.564 .018 3.067-.233L2.914-.798C2.681-.619 2.367-.511 2.089-.511C1.739-.511 1.623-.825 1.623-1.291V-3.425Z'/>
<path id='g1-118' d='M4.116-3.981H3.407L2.699-2.161C2.52-1.695 2.188-.825 2.143-.493H2.125C2.107-.646 2.08-.816 1.587-2.107C1.318-2.833 .879-3.927 .861-3.981H.126L1.704 0H2.537L4.116-3.981Z'/>
<path id='g0-40' d='M2.127-5.23C2.008-5.23 1.995-5.23 1.911-5.154C1.032-4.387 .586-3.145 .586-1.743C.586-.425 .983 .844 1.904 1.653C1.995 1.743 2.008 1.743 2.127 1.743H2.462C2.441 1.73 1.764 1.151 1.444 .063C1.276-.481 1.193-1.053 1.193-1.743C1.193-4.156 2.322-5.112 2.462-5.23H2.127Z'/>
<path id='g0-41' d='M.746 1.743C.865 1.743 .879 1.743 .962 1.667C1.841 .9 2.287-.342 2.287-1.743C2.287-3.062 1.89-4.331 .969-5.14C.879-5.23 .865-5.23 .746-5.23H.411C.432-5.216 1.109-4.638 1.43-3.55C1.597-3.006 1.681-2.434 1.681-1.743C1.681 .669 .551 1.625 .411 1.743H.746Z'/>
<path id='g0-46' d='M1.339-.628H.711V0H1.339V-.628Z'/>
<path id='g0-48' d='M3.403-2.267C3.403-2.601 3.403-3.417 3.075-3.989C2.72-4.617 2.183-4.721 1.848-4.721C1.534-4.721 .99-4.624 .642-4.024C.307-3.466 .293-2.706 .293-2.267C.293-1.75 .321-1.116 .614-.586C.921-.021 1.437 .146 1.848 .146C2.545 .146 2.929-.258 3.138-.697C3.382-1.193 3.403-1.834 3.403-2.267ZM1.848-.314C1.555-.314 1.22-.481 1.046-.983C.907-1.409 .9-1.848 .9-2.357C.9-2.999 .9-4.261 1.848-4.261S2.797-2.999 2.797-2.357C2.797-1.897 2.797-1.374 2.629-.928C2.434-.425 2.078-.314 1.848-.314Z'/>
<path id='g0-49' d='M2.239-4.721H2.085C1.632-4.303 1.06-4.275 .642-4.261V-3.822C.914-3.829 1.262-3.843 1.611-3.982V-.439H.683V0H3.166V-.439H2.239V-4.721Z'/>
<path id='g0-50' d='M1.974-.537C1.89-.537 1.806-.53 1.723-.53H.928L2.008-1.485C2.134-1.597 2.476-1.855 2.608-1.967C2.915-2.246 3.327-2.608 3.327-3.215C3.327-4.003 2.741-4.721 1.743-4.721C1.004-4.721 .544-4.324 .307-3.612L.635-3.201C.795-3.787 1.039-4.24 1.646-4.24C2.232-4.24 2.678-3.829 2.678-3.201C2.678-2.622 2.336-2.294 1.918-1.897C1.778-1.757 1.402-1.444 1.255-1.304C1.053-1.123 .572-.656 .37-.481V0H3.327V-.537H1.974Z'/>
<path id='g0-51' d='M.697-3.578C.983-4.135 1.485-4.289 1.82-4.289C2.232-4.289 2.538-4.052 2.538-3.654C2.538-3.285 2.287-2.831 1.757-2.741C1.723-2.734 1.695-2.734 1.234-2.699V-2.239H1.778C2.441-2.239 2.685-1.716 2.685-1.276C2.685-.732 2.35-.314 1.806-.314C1.311-.314 .746-.551 .398-.997L.307-.544C.711-.091 1.276 .146 1.82 .146C2.734 .146 3.389-.537 3.389-1.269C3.389-1.841 2.929-2.301 2.378-2.462C2.908-2.734 3.18-3.201 3.18-3.654C3.18-4.247 2.573-4.721 1.827-4.721C1.213-4.721 .704-4.4 .411-3.982L.697-3.578Z'/>
<path id='g0-52' d='M2.762-1.165H3.487V-1.625H2.762V-4.575H2.071L.209-1.625V-1.165H2.162V0H2.762V-1.165ZM.802-1.625C1.011-1.953 2.211-3.815 2.211-4.233V-1.625H.802Z'/>
<path id='g0-53' d='M1.144-4.094H3.075V-4.575H.586V-1.967H1.095C1.262-2.343 1.59-2.511 1.904-2.511C2.19-2.511 2.622-2.315 2.622-1.43C2.622-.516 2.043-.314 1.688-.314C1.227-.314 .781-.558 .544-.955L.279-.537C.621-.112 1.137 .146 1.688 .146C2.608 .146 3.327-.565 3.327-1.416C3.327-2.28 2.685-2.971 1.918-2.971C1.618-2.971 1.353-2.866 1.144-2.692V-4.094Z'/>
<path id='g0-54' d='M3.062-4.582C2.685-4.721 2.42-4.721 2.287-4.721C1.227-4.721 .307-3.724 .307-2.253C.307-.363 1.158 .146 1.862 .146C2.427 .146 2.72-.119 2.936-.342C3.382-.816 3.389-1.311 3.389-1.555C3.389-2.469 2.894-3.229 2.218-3.229C1.534-3.229 1.165-2.873 .962-2.671C1.053-3.626 1.541-4.289 2.294-4.289C2.434-4.289 2.713-4.275 3.062-4.142V-4.582ZM.969-1.534C.969-1.576 .969-1.681 .976-1.716C.976-2.19 1.276-2.769 1.897-2.769C2.748-2.769 2.748-1.792 2.748-1.555C2.748-1.29 2.748-.997 2.559-.704C2.392-.453 2.183-.314 1.862-.314C1.123-.314 1.004-1.227 .969-1.534Z'/>
<path id='g0-55' d='M1.723-4.038C1.806-4.038 1.89-4.045 1.974-4.045H2.852C1.792-3.006 1.116-1.548 1.116 .07H1.771C1.771-1.967 2.762-3.431 3.389-4.087V-4.575H.307V-4.038H1.723Z'/>
<path id='g0-56' d='M2.385-2.469C2.845-2.615 3.285-2.985 3.285-3.501C3.285-4.135 2.678-4.721 1.848-4.721S.411-4.135 .411-3.501C.411-2.978 .865-2.608 1.311-2.469C.697-2.28 .307-1.806 .307-1.269C.307-.523 .969 .146 1.848 .146S3.389-.523 3.389-1.269C3.389-1.806 2.992-2.28 2.385-2.469ZM1.848-2.699C1.353-2.699 .948-2.985 .948-3.494C.948-3.94 1.262-4.289 1.848-4.289C2.427-4.289 2.748-3.94 2.748-3.494C2.748-2.999 2.357-2.699 1.848-2.699ZM1.848-.314C1.367-.314 .941-.621 .941-1.276C.941-1.904 1.346-2.239 1.848-2.239S2.755-1.897 2.755-1.276C2.755-.621 2.322-.314 1.848-.314Z'/>
<path id='g0-57' d='M.537-.174C.879 .077 1.193 .146 1.52 .146C2.497 .146 3.389-.837 3.389-2.336C3.389-4.24 2.545-4.721 1.876-4.721C1.255-4.721 .969-4.428 .767-4.226C.321-3.773 .307-3.292 .307-3.02C.307-2.12 .795-1.346 1.478-1.346C2.267-1.346 2.699-1.869 2.734-1.911C2.636-.802 2.092-.314 1.52-.314C1.158-.314 .934-.446 .774-.579L.537-.174ZM2.713-3.027C2.72-2.985 2.72-2.915 2.72-2.873C2.72-2.357 2.406-1.806 1.799-1.806C1.534-1.806 1.325-1.883 1.144-2.169C.962-2.441 .948-2.706 .948-3.02C.948-3.292 .948-3.605 1.165-3.912C1.311-4.122 1.52-4.289 1.869-4.289C2.545-4.289 2.692-3.473 2.713-3.027Z'/>
<path id='g0-78' d='M1.646-4.84H.697V0H1.283V-4.289H1.29L3.578 0H4.526V-4.84H3.94V-.551H3.933L1.646-4.84Z'/>
<path id='g0-97' d='M2.971-2.008C2.971-2.72 2.427-3.201 1.736-3.201C1.297-3.201 .962-3.11 .572-2.901L.614-2.392C.844-2.545 1.186-2.755 1.736-2.755C2.043-2.755 2.364-2.525 2.364-2.001V-1.723C1.332-1.688 .314-1.471 .314-.823C.314-.474 .551 .07 1.165 .07C1.465 .07 2.015 .007 2.385-.265V0H2.971V-2.008ZM2.364-.99C2.364-.851 2.364-.669 2.12-.523C1.897-.398 1.625-.391 1.548-.391C1.165-.391 .872-.565 .872-.83C.872-1.276 2.05-1.318 2.364-1.332V-.99Z'/>
<path id='g0-98' d='M1.179-4.84H.593V0H1.2V-.328C1.353-.195 1.688 .07 2.197 .07C2.957 .07 3.571-.642 3.571-1.555C3.571-2.399 3.089-3.166 2.392-3.166C1.953-3.166 1.527-3.027 1.179-2.769V-4.84ZM1.2-2.197C1.2-2.308 1.2-2.392 1.444-2.552C1.548-2.615 1.736-2.706 1.974-2.706C2.441-2.706 2.964-2.392 2.964-1.555C2.964-.704 2.385-.391 1.897-.391C1.639-.391 1.395-.509 1.2-.823V-2.197Z'/>
<path id='g0-99' d='M3.034-.76C2.685-.537 2.308-.411 1.876-.411C1.234-.411 .858-.928 .858-1.555C.858-2.092 1.137-2.72 1.897-2.72C2.371-2.72 2.594-2.622 2.95-2.399L3.041-2.901C2.622-3.11 2.441-3.201 1.897-3.201C.851-3.201 .251-2.357 .251-1.548C.251-.697 .921 .07 1.869 .07C2.357 .07 2.776-.077 3.075-.251L3.034-.76Z'/>
<path id='g0-100' d='M3.229-4.84H2.643V-2.797C2.197-3.124 1.743-3.166 1.541-3.166C.809-3.166 .251-2.434 .251-1.548S.802 .07 1.52 .07C1.953 .07 2.357-.126 2.622-.363V0H3.229V-4.84ZM2.622-.865C2.448-.579 2.183-.391 1.848-.391C1.36-.391 .858-.732 .858-1.541C.858-2.413 1.451-2.706 1.925-2.706C2.204-2.706 2.441-2.587 2.622-2.35V-.865Z'/>
<path id='g0-101' d='M2.999-.76C2.608-.481 2.169-.391 1.869-.391C1.262-.391 .802-.886 .781-1.527H3.068C3.068-1.848 3.034-2.315 2.762-2.713C2.511-3.068 2.092-3.201 1.75-3.201C.9-3.201 .244-2.455 .244-1.569C.244-.676 .941 .07 1.862 .07C2.267 .07 2.685-.049 3.041-.265L2.999-.76ZM.83-1.946C.99-2.504 1.402-2.741 1.75-2.741C2.057-2.741 2.511-2.594 2.643-1.946H.83Z'/>
<path id='g0-102' d='M1.325-2.657H2.12V-3.096H1.304V-3.898C1.304-4.38 1.743-4.449 1.974-4.449C2.12-4.449 2.308-4.428 2.566-4.331V-4.84C2.385-4.882 2.169-4.91 1.981-4.91C1.262-4.91 .739-4.394 .739-3.703V-3.096H.202V-2.657H.739V0H1.325V-2.657Z'/>
<path id='g0-105' d='M1.227-4.784H.523V-4.08H1.227V-4.784ZM1.172-3.096H.586V0H1.172V-3.096Z'/>
<path id='g0-108' d='M1.172-4.84H.586V0H1.172V-4.84Z'/>
<path id='g0-109' d='M5.3-2.064C5.3-2.608 5.14-3.166 4.282-3.166C3.696-3.166 3.333-2.824 3.166-2.601C3.096-2.79 2.922-3.166 2.225-3.166C1.827-3.166 1.444-3.006 1.137-2.636V-3.145H.579V0H1.186V-1.695C1.186-2.155 1.381-2.706 1.918-2.706C2.636-2.706 2.636-2.218 2.636-2.015V0H3.243V-1.695C3.243-2.155 3.438-2.706 3.975-2.706C4.693-2.706 4.693-2.218 4.693-2.015V0H5.3V-2.064Z'/>
<path id='g0-110' d='M3.243-2.064C3.243-2.608 3.082-3.166 2.225-3.166C1.827-3.166 1.444-3.006 1.137-2.636V-3.145H.579V0H1.186V-1.695C1.186-2.155 1.381-2.706 1.918-2.706C2.636-2.706 2.636-2.218 2.636-2.015V0H3.243V-2.064Z'/>
<path id='g0-111' d='M3.487-1.527C3.487-2.448 2.755-3.201 1.848-3.201S.209-2.441 .209-1.527C.209-.642 .948 .07 1.848 .07C2.755 .07 3.487-.642 3.487-1.527ZM1.848-.411C1.297-.411 .816-.816 .816-1.604S1.332-2.741 1.848-2.741C2.371-2.741 2.88-2.378 2.88-1.604C2.88-.809 2.385-.411 1.848-.411Z'/>
<path id='g0-112' d='M1.2-.328C1.569 .007 1.967 .07 2.204 .07C2.943 .07 3.571-.635 3.571-1.555C3.571-2.392 3.11-3.166 2.42-3.166C2.106-3.166 1.583-3.075 1.179-2.762V-3.096H.593V1.353H1.2V-.328ZM1.2-2.315C1.36-2.511 1.632-2.685 1.967-2.685C2.525-2.685 2.964-2.169 2.964-1.555C2.964-.865 2.441-.391 1.897-.391C1.792-.391 1.618-.404 1.437-.551C1.227-.711 1.2-.816 1.2-.948V-2.315Z'/>
<path id='g0-114' d='M1.179-1.485C1.179-2.239 1.806-2.643 2.42-2.65V-3.166C1.834-3.159 1.409-2.873 1.13-2.504V-3.145H.593V0H1.179V-1.485Z'/>
<path id='g0-115' d='M2.545-2.985C2.071-3.18 1.723-3.201 1.471-3.201C1.297-3.201 .244-3.201 .244-2.273C.244-1.946 .425-1.764 .516-1.681C.76-1.437 1.053-1.381 1.423-1.311C1.75-1.248 2.127-1.179 2.127-.844C2.127-.404 1.548-.404 1.451-.404C1.004-.404 .586-.565 .307-.76L.209-.237C.446-.119 .872 .07 1.451 .07C1.764 .07 2.071 .021 2.329-.167C2.587-.363 2.671-.669 2.671-.907C2.671-1.032 2.657-1.304 2.364-1.569C2.106-1.799 1.855-1.848 1.52-1.911C1.109-1.988 .788-2.05 .788-2.357C.788-2.755 1.297-2.755 1.402-2.755C1.799-2.755 2.106-2.671 2.455-2.49L2.545-2.985Z'/>
<path id='g0-116' d='M1.311-2.657H2.343V-3.096H1.311V-3.982H.774V-3.096H.139V-2.657H.753V-.893C.753-.425 .872 .07 1.374 .07S2.26-.091 2.469-.188L2.35-.635C2.12-.467 1.876-.411 1.681-.411C1.388-.411 1.311-.697 1.311-1.018V-2.657Z'/>
<path id='g0-119' d='M4.951-3.096H4.407C4.345-2.901 3.954-1.723 3.738-.997C3.682-.795 3.612-.572 3.592-.411H3.585C3.543-.697 3.299-1.451 3.285-1.499L2.769-3.096H2.239C2.036-2.497 1.513-.934 1.458-.425H1.451C1.395-.921 .879-2.462 .767-2.797C.711-2.964 .711-2.978 .676-3.096H.105L1.123 0H1.709C1.716-.028 1.904-.579 2.148-1.353C2.253-1.695 2.462-2.364 2.497-2.671L2.504-2.678C2.518-2.532 2.559-2.378 2.608-2.204S2.706-1.841 2.755-1.681L3.292 0H3.933L4.951-3.096Z'/>
<path id='g0-120' d='M1.932-1.597L3.285-3.096H2.671L1.681-1.953L.669-3.096H.042L1.437-1.597L0 0H.621L1.681-1.311L2.783 0H3.41L1.932-1.597Z'/>
</defs>
<g id='page1'>
<path d='M140.82 218.086V209.23M199.488 218.086V209.23M258.156 218.086V209.23M316.824 218.086V209.23M375.496 218.086V209.23M140.82 75.129V83.984M199.488 75.129V83.984M258.156 75.129V83.984M316.824 75.129V83.984M375.496 75.129V83.984' stroke='#808080' fill='none' stroke-width='.199' stroke-miterlimit='10'/>
<path d='M111.484 213.484V209.23M170.152 213.484V209.23M228.824 213.484V209.23M287.492 213.484V209.23M346.16 213.484V209.23M404.828 213.484V209.23M111.484 79.734V83.984M170.152 79.734V83.984M228.824 79.734V83.984M287.492 79.734V83.984M346.16 79.734V83.984M404.828 79.734V83.984' stroke='#808080' fill='none' stroke-width='.199' stroke-miterlimit='10'/>
<path d='M82.148 209.23H86.402M82.148 177.918H86.402M82.148 146.609H86.402M82.148 115.297H86.402M82.148 83.984H86.402M434.164 209.23H429.91M434.164 177.918H429.91M434.164 146.609H429.91M434.164 115.297H429.91M434.164 83.984H429.91' stroke='#808080' fill='none' stroke-width='.199' stroke-miterlimit='10'/>
<path d='M82.148 209.23V83.984H434.164V209.23H82.148Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10'/>
<g transform='matrix(1 0 0 1 -11.54 34.954)'>
<use x='114.487' y='188.674' xlink:href='#g3-99'/>
<use x='118.25' y='188.674' xlink:href='#g3-102'/>
<use x='120.838' y='188.674' xlink:href='#g3-114'/>
<use x='123.73' y='188.674' xlink:href='#g3-97'/>
<use x='127.798' y='188.674' xlink:href='#g3-99'/>
</g>
<g transform='matrix(1 0 0 1 45.565 34.954)'>
<use x='114.487' y='188.674' xlink:href='#g3-108'/>
<use x='116.507' y='188.674' xlink:href='#g3-101'/>
<use x='120.271' y='188.674' xlink:href='#g3-97'/>
<use x='124.339' y='188.674' xlink:href='#g3-110'/>
<use x='128.711' y='188.674' xlink:href='#g3-78'/>
</g>
<g transform='matrix(1 0 0 1 106.188 34.954)'>
<use x='114.487' y='188.674' xlink:href='#g3-114'/>
<use x='117.379' y='188.674' xlink:href='#g3-101'/>
<use x='121.142' y='188.674' xlink:href='#g3-100'/>
<use x='125.515' y='188.674' xlink:href='#g3-105'/>
<use x='127.535' y='188.674' xlink:href='#g3-115'/>
</g>
<g transform='matrix(1 0 0 1 159.716 34.954)'>
<use x='114.487' y='188.674' xlink:href='#g3-108'/>
<use x='116.507' y='188.674' xlink:href='#g3-97'/>
<use x='120.34' y='188.674' xlink:href='#g3-114'/>
<use x='123.232' y='188.674' xlink:href='#g3-115'/>
<use x='126.478' y='188.674' xlink:href='#g3-111'/>
<use x='130.712' y='188.674' xlink:href='#g3-110'/>
<use x='135.085' y='188.674' xlink:href='#g3-78'/>
</g>
<g transform='matrix(1 0 0 1 215.596 34.954)'>
<use x='114.487' y='188.674' xlink:href='#g3-109'/>
<use x='121.211' y='188.674' xlink:href='#g3-115'/>
<use x='124.458' y='188.674' xlink:href='#g3-116'/>
<use x='127.516' y='188.674' xlink:href='#g3-114'/>
<use x='130.408' y='188.674' xlink:href='#g3-101'/>
<use x='134.171' y='188.674' xlink:href='#g3-115'/>
<use x='137.418' y='188.674' xlink:href='#g3-115'/>
<use x='140.664' y='188.674' xlink:href='#g3-78'/>
</g>
<g transform='matrix(1 0 0 1 277.158 34.954)'>
<use x='114.487' y='188.674' xlink:href='#g3-114'/>
<use x='117.379' y='188.674' xlink:href='#g3-112'/>
<use x='121.751' y='188.674' xlink:href='#g3-116'/>
<use x='124.809' y='188.674' xlink:href='#g3-101'/>
<use x='128.573' y='188.674' xlink:href='#g3-115'/>
<use x='131.819' y='188.674' xlink:href='#g3-116'/>
<use x='134.877' y='188.674' xlink:href='#g3-78'/>
</g>
<g transform='matrix(1 0 0 1 -40.942 22.192)'>
<use x='114.487' y='188.674' xlink:href='#g2-48'/>
<use x='117.133' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(1 0 0 1 -45.059 -9.12)'>
<use x='114.487' y='188.674' xlink:href='#g2-48'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-53'/>
<use x='121.25' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(1 0 0 1 -45.059 -40.431)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(1 0 0 1 -45.059 -71.743)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-53'/>
<use x='121.25' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(1 0 0 1 -45.059 -103.054)'>
<use x='114.487' y='188.674' xlink:href='#g2-50'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-120'/>
</g>
<path d='M82.148 146.609H434.164' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M86.328 209.23H89.566V146.609H86.328ZM144.996 209.23H148.234V146.609H144.996ZM203.668 209.23H206.902V146.609H203.668ZM262.336 209.23H265.574V146.609H262.336ZM321.004 209.23H324.242V146.609H321.004ZM379.672 209.23H382.91V146.609H379.672Z' fill='#933' clip-path='url(#clip1)'/>
<path d='M86.328 209.23H89.566V146.609H86.328ZM144.996 209.23H148.234V146.609H144.996ZM203.668 209.23H206.902V146.609H203.668ZM262.336 209.23H265.574V146.609H262.336ZM321.004 209.23H324.242V146.609H321.004ZM379.672 209.23H382.91V146.609H379.672Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M87.949 146.609V146.484' fill='#933' clip-path='url(#clip1)'/>
<path d='M87.949 146.609V146.484' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M85.953 146.484H89.938' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M87.949 146.609V146.734' fill='#933' clip-path='url(#clip1)'/>
<path d='M87.949 146.609V146.734' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M89.941 146.734H85.957' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M146.617 146.609V146.359' fill='#933' clip-path='url(#clip1)'/>
<path d='M146.617 146.609V146.359' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M144.625 146.36H148.609' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M146.617 146.609V146.859' fill='#933' clip-path='url(#clip1)'/>
<path d='M146.617 146.609V146.859' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M148.61 146.86H144.625' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M205.285 146.609V146.297' fill='#933' clip-path='url(#clip1)'/>
<path d='M205.285 146.609V146.297' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M203.293 146.297H207.277' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M205.285 146.609V146.922' fill='#933' clip-path='url(#clip1)'/>
<path d='M205.285 146.609V146.922' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M207.278 146.922H203.293' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M263.953 146.609V146.422' fill='#933' clip-path='url(#clip1)'/>
<path d='M263.953 146.609V146.422' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M261.961 146.422H265.945' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M263.953 146.609V146.797' fill='#933' clip-path='url(#clip1)'/>
<path d='M263.953 146.609V146.797' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M265.949 146.797H261.961' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M322.625 146.609V146.168' fill='#933' clip-path='url(#clip1)'/>
<path d='M322.625 146.609V146.168' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M320.629 146.168H324.617' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M322.625 146.609V147.047' fill='#933' clip-path='url(#clip1)'/>
<path d='M322.625 146.609V147.047' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M324.617 147.046H320.633' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M381.293 146.609V145.168' fill='#933' clip-path='url(#clip1)'/>
<path d='M381.293 146.609V145.168' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M379.301 145.168H383.285' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M381.293 146.609V148.047' fill='#933' clip-path='url(#clip1)'/>
<path d='M381.293 146.609V148.047' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M383.285 148.046H379.301' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M91.559 209.23H94.797V147.172H91.559ZM150.227 209.23H153.465V145.48H150.227ZM208.899 209.23H212.133V146.797H208.899ZM267.567 209.23H270.805V149.051H267.567ZM326.234 209.23H329.473V146.359H326.234ZM384.902 209.23H388.141V132.707H384.902Z' fill='#bf8080' clip-path='url(#clip1)'/>
<path d='M91.559 209.23H94.797V147.172H91.559ZM150.227 209.23H153.465V145.48H150.227ZM208.899 209.23H212.133V146.797H208.899ZM267.567 209.23H270.805V149.051H267.567ZM326.234 209.23H329.473V146.359H326.234ZM384.902 209.23H388.141V132.707H384.902Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M93.18 147.172V146.922' fill='#bf8080' clip-path='url(#clip1)'/>
<path d='M93.18 147.172V146.922' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M91.184 146.922H95.168' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M93.18 147.172V147.422' fill='#bf8080' clip-path='url(#clip1)'/>
<path d='M93.18 147.172V147.422' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M95.172 147.422H91.187' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M151.848 145.48V145.23' fill='#bf8080' clip-path='url(#clip1)'/>
<path d='M151.848 145.48V145.23' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M149.855 145.23H153.84' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M151.848 145.48V145.73' fill='#bf8080' clip-path='url(#clip1)'/>
<path d='M151.848 145.48V145.73' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M153.84 145.73H149.855' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M210.516 146.797V146.484' fill='#bf8080' clip-path='url(#clip1)'/>
<path d='M210.516 146.797V146.484' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M208.523 146.484H212.507' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M210.516 146.797V147.109' fill='#bf8080' clip-path='url(#clip1)'/>
<path d='M210.516 146.797V147.109' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M212.508 147.109H208.523' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M269.184 149.051V148.426' fill='#bf8080' clip-path='url(#clip1)'/>
<path d='M269.184 149.051V148.426' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M267.191 148.426H271.175' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M269.184 149.051V149.676' fill='#bf8080' clip-path='url(#clip1)'/>
<path d='M269.184 149.051V149.676' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M271.179 149.676H267.191' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M327.856 146.359V144.164' fill='#bf8080' clip-path='url(#clip1)'/>
<path d='M327.856 146.359V144.164' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M325.859 144.164H329.847' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M327.856 146.359V148.551' fill='#bf8080' clip-path='url(#clip1)'/>
<path d='M327.856 146.359V148.551' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M329.847 148.55H325.863' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M386.524 132.707V129.137' fill='#bf8080' clip-path='url(#clip1)'/>
<path d='M386.524 132.707V129.137' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M384.531 129.136H388.515' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M386.524 132.707V136.273' fill='#bf8080' clip-path='url(#clip1)'/>
<path d='M386.524 132.707V136.273' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M388.515 136.273H384.531' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M96.789 209.23H100.027V146.359H96.789ZM155.457 209.23H158.695V138.781H155.457ZM214.129 209.23H217.363V142.476H214.129ZM272.797 209.23H276.035V135.086H272.797ZM331.465 209.23H334.703V146.922H331.465ZM390.133 209.23H393.371V83.984H390.133Z' fill='#8080bf' clip-path='url(#clip1)'/>
<path d='M96.789 209.23H100.027V146.359H96.789ZM155.457 209.23H158.695V138.781H155.457ZM214.129 209.23H217.363V142.476H214.129ZM272.797 209.23H276.035V135.086H272.797ZM331.465 209.23H334.703V146.922H331.465ZM390.133 209.23H393.371V83.984H390.133Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M98.41 146.359V146.043' fill='#8080bf' clip-path='url(#clip1)'/>
<path d='M98.41 146.359V146.043' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M96.414 146.043H100.399' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M98.41 146.359V146.672' fill='#8080bf' clip-path='url(#clip1)'/>
<path d='M98.41 146.359V146.672' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M100.402 146.672H96.418' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M157.078 138.781V138.469' fill='#8080bf' clip-path='url(#clip1)'/>
<path d='M157.078 138.781V138.469' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M155.086 138.469H159.071' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M157.078 138.781V139.094' fill='#8080bf' clip-path='url(#clip1)'/>
<path d='M157.078 138.781V139.094' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M159.071 139.093H155.086' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M215.746 142.476V142.289' fill='#8080bf' clip-path='url(#clip1)'/>
<path d='M215.746 142.476V142.289' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M213.754 142.289H217.738' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M215.746 142.476V142.664' fill='#8080bf' clip-path='url(#clip1)'/>
<path d='M215.746 142.476V142.664' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M217.739 142.664H213.754' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M274.414 135.086V132.957' fill='#8080bf' clip-path='url(#clip1)'/>
<path d='M274.414 135.086V132.957' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M272.422 132.957H276.406' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M274.414 135.086V137.215' fill='#8080bf' clip-path='url(#clip1)'/>
<path d='M274.414 135.086V137.215' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M276.41 137.215H272.422' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M333.086 146.922V145.73' fill='#8080bf' clip-path='url(#clip1)'/>
<path d='M333.086 146.922V145.73' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M331.09 145.73H335.078' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M333.086 146.922V148.109' fill='#8080bf' clip-path='url(#clip1)'/>
<path d='M333.086 146.922V148.109' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M335.078 148.109H331.094' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M391.754 83.984' fill='#8080bf' clip-path='url(#clip1)'/>
<path d='M389.762 83.984H393.746' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M391.754 83.984' fill='#8080bf' clip-path='url(#clip1)'/>
<path d='M389.762 83.984H393.746' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M102.02 209.23H105.258V142.223H102.02ZM160.688 209.23H163.926V143.851H160.688ZM219.359 209.23H222.594V137.277H219.359ZM278.027 209.23H281.266V131.328H278.027ZM336.695 209.23H339.934V120.934H336.695ZM395.363 209.23H398.602V83.984H395.363Z' fill='#ffb733' clip-path='url(#clip1)'/>
<path d='M102.02 209.23H105.258V142.223H102.02ZM160.688 209.23H163.926V143.851H160.688ZM219.359 209.23H222.594V137.277H219.359ZM278.027 209.23H281.266V131.328H278.027ZM336.695 209.23H339.934V120.934H336.695ZM395.363 209.23H398.602V83.984H395.363Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M103.641 142.223V142.098' fill='#ffb733' clip-path='url(#clip1)'/>
<path d='M103.641 142.223V142.098' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M101.644 142.097H105.629' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M103.641 142.223V142.351' fill='#ffb733' clip-path='url(#clip1)'/>
<path d='M103.641 142.223V142.351' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M105.633 142.352H101.648' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M162.309 143.851V143.101' fill='#ffb733' clip-path='url(#clip1)'/>
<path d='M162.309 143.851V143.101' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M160.316 143.101H164.301' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M162.309 143.851V144.605' fill='#ffb733' clip-path='url(#clip1)'/>
<path d='M162.309 143.851V144.605' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M164.301 144.605H160.316' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M220.977 137.277V136.902' fill='#ffb733' clip-path='url(#clip1)'/>
<path d='M220.977 137.277V136.902' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M218.984 136.903H222.969' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M220.977 137.277V137.652' fill='#ffb733' clip-path='url(#clip1)'/>
<path d='M220.977 137.277V137.652' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M222.969 137.652H218.984' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M279.645 131.328V130.516' fill='#ffb733' clip-path='url(#clip1)'/>
<path d='M279.645 131.328V130.516' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M277.652 130.516H281.636' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M279.645 131.328V132.141' fill='#ffb733' clip-path='url(#clip1)'/>
<path d='M279.645 131.328V132.141' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M281.64 132.14H277.652' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M338.317 120.934V120.305' fill='#ffb733' clip-path='url(#clip1)'/>
<path d='M338.317 120.934V120.305' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M336.32 120.304H340.308' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M338.317 120.934V121.559' fill='#ffb733' clip-path='url(#clip1)'/>
<path d='M338.317 120.934V121.559' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M340.308 121.559H336.324' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M396.984 83.984' fill='#ffb733' clip-path='url(#clip1)'/>
<path d='M394.992 83.984H398.976' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M396.984 83.984' fill='#ffb733' clip-path='url(#clip1)'/>
<path d='M394.992 83.984H398.976' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M107.25 209.23H110.488V120.367H107.25ZM165.918 209.23H169.156V137.777H165.918ZM224.59 209.23H227.824V111.789H224.59ZM283.258 209.23H286.496V92.187H283.258ZM341.926 209.23H345.164V134.019H341.926ZM400.594 209.23H403.832V118.051H400.594Z' fill='#bf80bf' clip-path='url(#clip1)'/>
<path d='M107.25 209.23H110.488V120.367H107.25ZM165.918 209.23H169.156V137.777H165.918ZM224.59 209.23H227.824V111.789H224.59ZM283.258 209.23H286.496V92.187H283.258ZM341.926 209.23H345.164V134.019H341.926ZM400.594 209.23H403.832V118.051H400.594Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M108.871 120.367V119.992' fill='#bf80bf' clip-path='url(#clip1)'/>
<path d='M108.871 120.367V119.992' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M106.875 119.992H110.86' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M108.871 120.367V120.746' fill='#bf80bf' clip-path='url(#clip1)'/>
<path d='M108.871 120.367V120.746' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M110.864 120.746H106.879' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M167.539 137.777V137.527' fill='#bf80bf' clip-path='url(#clip1)'/>
<path d='M167.539 137.777V137.527' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M165.547 137.528H169.532' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M167.539 137.777V138.027' fill='#bf80bf' clip-path='url(#clip1)'/>
<path d='M167.539 137.777V138.027' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M169.532 138.028H165.547' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M226.207 111.789V111.726' fill='#bf80bf' clip-path='url(#clip1)'/>
<path d='M226.207 111.789V111.726' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M224.215 111.726H228.2' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M226.207 111.789V111.851' fill='#bf80bf' clip-path='url(#clip1)'/>
<path d='M226.207 111.789V111.851' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M228.2 111.851H224.215' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M284.875 92.187V90.308' fill='#bf80bf' clip-path='url(#clip1)'/>
<path d='M284.875 92.187V90.308' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M282.883 90.309H286.868' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M284.875 92.187V94.066' fill='#bf80bf' clip-path='url(#clip1)'/>
<path d='M284.875 92.187V94.066' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M286.868 94.066H282.883' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M343.547 134.019V132.894' fill='#bf80bf' clip-path='url(#clip1)'/>
<path d='M343.547 134.019V132.894' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M341.551 132.895H345.539' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M343.547 134.019V135.148' fill='#bf80bf' clip-path='url(#clip1)'/>
<path d='M343.547 134.019V135.148' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M345.539 135.148H341.555' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M402.215 118.051V112.289' fill='#bf80bf' clip-path='url(#clip1)'/>
<path d='M402.215 118.051V112.289' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M400.223 112.289H404.207' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M402.215 118.051V123.812' fill='#bf80bf' clip-path='url(#clip1)'/>
<path d='M402.215 118.051V123.812' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M404.207 123.812H400.223' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M112.481 209.23H115.719V145.918H112.481ZM171.149 209.23H174.387V145.105H171.149ZM229.82 209.23H233.055V147.672H229.82ZM288.488 209.23H291.727V149.176H288.488ZM347.156 209.23H350.395V104.211H347.156ZM405.824 209.23H409.063V115.422H405.824Z' fill='#c96' clip-path='url(#clip1)'/>
<path d='M112.481 209.23H115.719V145.918H112.481ZM171.149 209.23H174.387V145.105H171.149ZM229.82 209.23H233.055V147.672H229.82ZM288.488 209.23H291.727V149.176H288.488ZM347.156 209.23H350.395V104.211H347.156ZM405.824 209.23H409.063V115.422H405.824Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M114.098 145.918V145.793' fill='#c96' clip-path='url(#clip1)'/>
<path d='M114.098 145.918V145.793' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M112.105 145.793H116.09' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M114.098 145.918V146.043' fill='#c96' clip-path='url(#clip1)'/>
<path d='M114.098 145.918V146.043' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M116.094 146.043H112.109' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M172.77 145.105V144.793' fill='#c96' clip-path='url(#clip1)'/>
<path d='M172.77 145.105V144.793' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M170.777 144.793H174.762' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M172.77 145.105V145.418' fill='#c96' clip-path='url(#clip1)'/>
<path d='M172.77 145.105V145.418' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M174.762 145.418H170.777' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M231.438 147.672V147.422' fill='#c96' clip-path='url(#clip1)'/>
<path d='M231.438 147.672V147.422' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M229.445 147.422H233.43' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M231.438 147.672V147.922' fill='#c96' clip-path='url(#clip1)'/>
<path d='M231.438 147.672V147.922' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M233.43 147.922H229.445' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M290.106 149.176V148.738' fill='#c96' clip-path='url(#clip1)'/>
<path d='M290.106 149.176V148.738' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M288.113 148.738H292.098' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M290.106 149.176V149.613' fill='#c96' clip-path='url(#clip1)'/>
<path d='M290.106 149.176V149.613' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M292.098 149.613H288.113' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M348.777 104.211V100.582' fill='#c96' clip-path='url(#clip1)'/>
<path d='M348.777 104.211V100.582' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M346.781 100.582H350.769' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M348.777 104.211V107.844' fill='#c96' clip-path='url(#clip1)'/>
<path d='M348.777 104.211V107.844' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M350.77 107.843H346.785' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M407.445 115.422V109.848' fill='#c96' clip-path='url(#clip1)'/>
<path d='M407.445 115.422V109.848' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M405.453 109.847H409.437' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M407.445 115.422V120.996' fill='#c96' clip-path='url(#clip1)'/>
<path d='M407.445 115.422V120.996' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M409.437 120.996H405.453' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M117.711 209.23H120.949V143.226H117.711ZM176.379 209.23H179.617V132.266H176.379ZM235.051 209.23H238.285V132.644H235.051ZM293.719 209.23H296.957V110.539H293.719ZM352.387 209.23H355.625V83.984H352.387ZM411.055 209.23H414.293V83.984H411.055Z' fill='#80bf80' clip-path='url(#clip1)'/>
<path d='M117.711 209.23H120.949V143.226H117.711ZM176.379 209.23H179.617V132.266H176.379ZM235.051 209.23H238.285V132.644H235.051ZM293.719 209.23H296.957V110.539H293.719ZM352.387 209.23H355.625V83.984H352.387ZM411.055 209.23H414.293V83.984H411.055Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M119.328 143.226V142.914' fill='#80bf80' clip-path='url(#clip1)'/>
<path d='M119.328 143.226V142.914' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M117.336 142.914H121.321' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M119.328 143.226V143.539' fill='#80bf80' clip-path='url(#clip1)'/>
<path d='M119.328 143.226V143.539' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M121.325 143.539H117.34' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M178 132.266V131.641' fill='#80bf80' clip-path='url(#clip1)'/>
<path d='M178 132.266V131.641' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M176.008 131.64H179.993' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M178 132.266V132.894' fill='#80bf80' clip-path='url(#clip1)'/>
<path d='M178 132.266V132.894' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M179.993 132.895H176.008' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M236.668 132.644V132.078' fill='#80bf80' clip-path='url(#clip1)'/>
<path d='M236.668 132.644V132.078' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M234.676 132.079H238.661' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M236.668 132.644V133.207' fill='#80bf80' clip-path='url(#clip1)'/>
<path d='M236.668 132.644V133.207' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M238.66 133.207H234.675' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M295.336 110.539V109.785' fill='#80bf80' clip-path='url(#clip1)'/>
<path d='M295.336 110.539V109.785' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M293.344 109.785H297.329' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M295.336 110.539V111.289' fill='#80bf80' clip-path='url(#clip1)'/>
<path d='M295.336 110.539V111.289' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M297.328 111.289H293.343' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M354.008 83.984' fill='#80bf80' clip-path='url(#clip1)'/>
<path d='M352.012 83.984H356' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M354.008 83.984' fill='#80bf80' clip-path='url(#clip1)'/>
<path d='M352.012 83.984H356' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M412.676 83.984' fill='#80bf80' clip-path='url(#clip1)'/>
<path d='M410.684 83.984H414.668' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M412.676 83.984' fill='#80bf80' clip-path='url(#clip1)'/>
<path d='M410.684 83.984H414.668' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M122.941 209.23H126.18V136.59H122.941ZM181.609 209.23H184.848V120.242H181.609ZM240.281 209.23H243.516V140.785H240.281ZM298.949 209.23H302.188V83.984H298.949ZM357.617 209.23H360.856V87.117H357.617ZM416.285 209.23H419.524V83.984H416.285Z' fill='#bfbf80' clip-path='url(#clip1)'/>
<path d='M122.941 209.23H126.18V136.59H122.941ZM181.609 209.23H184.848V120.242H181.609ZM240.281 209.23H243.516V140.785H240.281ZM298.949 209.23H302.188V83.984H298.949ZM357.617 209.23H360.856V87.117H357.617ZM416.285 209.23H419.524V83.984H416.285Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M124.559 136.59V136.465' fill='#bfbf80' clip-path='url(#clip1)'/>
<path d='M124.559 136.59V136.465' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M122.566 136.465H126.551' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M124.559 136.59V136.715' fill='#bfbf80' clip-path='url(#clip1)'/>
<path d='M124.559 136.59V136.715' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M126.555 136.715H122.57' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M183.231 120.242V119.305' fill='#bfbf80' clip-path='url(#clip1)'/>
<path d='M183.231 120.242V119.305' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M181.238 119.304H185.223' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M183.231 120.242V121.184' fill='#bfbf80' clip-path='url(#clip1)'/>
<path d='M183.231 120.242V121.184' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M185.223 121.183H181.238' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M241.899 140.785V140.41' fill='#bfbf80' clip-path='url(#clip1)'/>
<path d='M241.899 140.785V140.41' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M239.906 140.41H243.891' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M241.899 140.785V141.16' fill='#bfbf80' clip-path='url(#clip1)'/>
<path d='M241.899 140.785V141.16' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M243.891 141.16H239.906' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M300.567 83.984' fill='#bfbf80' clip-path='url(#clip1)'/>
<path d='M298.574 83.984H302.559' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M300.567 83.984' fill='#bfbf80' clip-path='url(#clip1)'/>
<path d='M298.574 83.984H302.559' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M359.238 87.117V85.363' fill='#bfbf80' clip-path='url(#clip1)'/>
<path d='M359.238 87.117V85.363' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M357.242 85.363H361.23' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M359.238 87.117V88.871' fill='#bfbf80' clip-path='url(#clip1)'/>
<path d='M359.238 87.117V88.871' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M361.231 88.871H357.246' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M417.906 83.984' fill='#bfbf80' clip-path='url(#clip1)'/>
<path d='M415.914 83.984H419.898' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M417.906 83.984' fill='#bfbf80' clip-path='url(#clip1)'/>
<path d='M415.914 83.984H419.898' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M128.172 209.23H131.41V141.285H128.172ZM186.84 209.23H190.078V131.266H186.84ZM245.512 209.23H248.746V139.781H245.512ZM304.18 209.23H307.418V99.328H304.18ZM362.848 209.23H366.086V105.34H362.848ZM421.516 209.23H424.754V83.984H421.516Z' fill='#399' clip-path='url(#clip1)'/>
<path d='M128.172 209.23H131.41V141.285H128.172ZM186.84 209.23H190.078V131.266H186.84ZM245.512 209.23H248.746V139.781H245.512ZM304.18 209.23H307.418V99.328H304.18ZM362.848 209.23H366.086V105.34H362.848ZM421.516 209.23H424.754V83.984H421.516Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M129.789 141.285V141.098' fill='#399' clip-path='url(#clip1)'/>
<path d='M129.789 141.285V141.098' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M127.797 141.097H131.782' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M129.789 141.285V141.473' fill='#399' clip-path='url(#clip1)'/>
<path d='M129.789 141.285V141.473' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M131.785 141.473H127.8' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M188.461 131.266V130.891' fill='#399' clip-path='url(#clip1)'/>
<path d='M188.461 131.266V130.891' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M186.469 130.891H190.454' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M188.461 131.266V131.641' fill='#399' clip-path='url(#clip1)'/>
<path d='M188.461 131.266V131.641' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M190.453 131.64H186.468' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M247.129 139.781V139.594' fill='#399' clip-path='url(#clip1)'/>
<path d='M247.129 139.781V139.594' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M245.137 139.593H249.122' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M247.129 139.781V139.969' fill='#399' clip-path='url(#clip1)'/>
<path d='M247.129 139.781V139.969' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M249.121 139.969H245.136' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M305.797 99.328V98.828' fill='#399' clip-path='url(#clip1)'/>
<path d='M305.797 99.328V98.828' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M303.804 98.828H307.789' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M305.797 99.328V99.828' fill='#399' clip-path='url(#clip1)'/>
<path d='M305.797 99.328V99.828' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M307.789 99.828H303.804' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M364.469 105.34V103.586' fill='#399' clip-path='url(#clip1)'/>
<path d='M364.469 105.34V103.586' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M362.473 103.586H366.461' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M364.469 105.34V107.094' fill='#399' clip-path='url(#clip1)'/>
<path d='M364.469 105.34V107.094' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M366.461 107.094H362.476' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M423.137 83.984' fill='#399' clip-path='url(#clip1)'/>
<path d='M421.144 83.984H425.128' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M423.137 83.984' fill='#399' clip-path='url(#clip1)'/>
<path d='M421.144 83.984H425.128' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M133.402 209.23H136.641V138.656H133.402ZM192.07 209.23H195.309V138.531H192.07ZM250.742 209.23H253.977V143.914H250.742ZM309.41 209.23H312.649V123H309.41ZM368.078 209.23H371.317V141.285H368.078ZM426.746 209.23H429.984V83.984H426.746Z' fill='#d9b3b3' clip-path='url(#clip1)'/>
<path d='M133.402 209.23H136.641V138.656H133.402ZM192.07 209.23H195.309V138.531H192.07ZM250.742 209.23H253.977V143.914H250.742ZM309.41 209.23H312.649V123H309.41ZM368.078 209.23H371.317V141.285H368.078ZM426.746 209.23H429.984V83.984H426.746Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M135.02 138.656V138.531' fill='#d9b3b3' clip-path='url(#clip1)'/>
<path d='M135.02 138.656V138.531' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M133.027 138.531H137.012' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M135.02 138.656V138.781' fill='#d9b3b3' clip-path='url(#clip1)'/>
<path d='M135.02 138.656V138.781' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M137.016 138.781H133.031' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M193.692 138.531V138.215' fill='#d9b3b3' clip-path='url(#clip1)'/>
<path d='M193.692 138.531V138.215' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M191.699 138.215H195.684' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M193.692 138.531V138.844' fill='#d9b3b3' clip-path='url(#clip1)'/>
<path d='M193.692 138.531V138.844' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M195.684 138.844H191.699' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M252.359 143.914V143.539' fill='#d9b3b3' clip-path='url(#clip1)'/>
<path d='M252.359 143.914V143.539' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M250.367 143.539H254.352' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M252.359 143.914V144.293' fill='#d9b3b3' clip-path='url(#clip1)'/>
<path d='M252.359 143.914V144.293' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M254.352 144.293H250.367' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M311.027 123V122.75' fill='#d9b3b3' clip-path='url(#clip1)'/>
<path d='M311.027 123V122.75' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M309.035 122.75H313.02' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M311.027 123V123.25' fill='#d9b3b3' clip-path='url(#clip1)'/>
<path d='M311.027 123V123.25' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M313.02 123.25H309.035' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M369.699 141.285V140.41' fill='#d9b3b3' clip-path='url(#clip1)'/>
<path d='M369.699 141.285V140.41' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M367.703 140.41H371.691' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M369.699 141.285V142.16' fill='#d9b3b3' clip-path='url(#clip1)'/>
<path d='M369.699 141.285V142.16' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M371.692 142.16H367.707' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M428.367 83.984' fill='#d9b3b3' clip-path='url(#clip1)'/>
<path d='M426.375 83.984H430.359' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M428.367 83.984' fill='#d9b3b3' clip-path='url(#clip1)'/>
<path d='M426.375 83.984H430.359' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<g transform='matrix(0 -1 1 0 -99.092 255.07)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 -40.423 255.07)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 18.246 255.07)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 76.915 255.07)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 135.584 255.07)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 194.253 255.07)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 -93.862 255.634)'>
<use x='114.487' y='188.674' xlink:href='#g2-48'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-57'/>
<use x='121.25' y='188.674' xlink:href='#g2-57'/>
</g>
<g transform='matrix(0 -1 1 0 -35.193 253.943)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-50'/>
</g>
<g transform='matrix(0 -1 1 0 23.476 255.258)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 82.145 257.513)'>
<use x='114.487' y='188.674' xlink:href='#g2-48'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-57'/>
<use x='121.25' y='188.674' xlink:href='#g2-54'/>
</g>
<g transform='matrix(0 -1 1 0 140.814 254.82)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 199.483 241.168)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-50'/>
<use x='121.25' y='188.674' xlink:href='#g2-50'/>
</g>
<g transform='matrix(0 -1 1 0 -88.631 254.82)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 -29.962 247.242)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-49'/>
<use x='121.25' y='188.674' xlink:href='#g2-51'/>
</g>
<g transform='matrix(0 -1 1 0 28.707 250.937)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-55'/>
</g>
<g transform='matrix(0 -1 1 0 87.376 243.548)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-49'/>
<use x='121.25' y='188.674' xlink:href='#g2-56'/>
</g>
<g transform='matrix(0 -1 1 0 146.045 255.383)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 204.714 192.447)'>
<use x='109.598' y='188.674' xlink:href='#g4-1'/>
<use x='113.103' y='188.674' xlink:href='#g4-1'/>
<use x='116.608' y='188.674' xlink:href='#g4-1'/>
<use x='120.114' y='188.674' xlink:href='#g2-50'/>
<use x='122.76' y='188.674' xlink:href='#g2-46'/>
<use x='124.23' y='188.674' xlink:href='#g2-57'/>
<use x='126.877' y='188.674' xlink:href='#g2-49'/>
<use x='129.523' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 -83.401 250.687)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-55'/>
</g>
<g transform='matrix(0 -1 1 0 -24.732 252.315)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-52'/>
</g>
<g transform='matrix(0 -1 1 0 33.937 245.74)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-49'/>
<use x='121.25' y='188.674' xlink:href='#g2-53'/>
</g>
<g transform='matrix(0 -1 1 0 92.606 239.79)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-50'/>
<use x='121.25' y='188.674' xlink:href='#g2-52'/>
</g>
<g transform='matrix(0 -1 1 0 151.275 229.395)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-52'/>
<use x='121.25' y='188.674' xlink:href='#g2-49'/>
</g>
<g transform='matrix(0 -1 1 0 209.944 192.447)'>
<use x='109.598' y='188.674' xlink:href='#g4-1'/>
<use x='113.103' y='188.674' xlink:href='#g4-1'/>
<use x='116.608' y='188.674' xlink:href='#g4-1'/>
<use x='120.114' y='188.674' xlink:href='#g2-50'/>
<use x='122.76' y='188.674' xlink:href='#g2-46'/>
<use x='124.23' y='188.674' xlink:href='#g2-54'/>
<use x='126.877' y='188.674' xlink:href='#g2-53'/>
<use x='129.523' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 -78.17 228.831)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-52'/>
<use x='121.25' y='188.674' xlink:href='#g2-50'/>
</g>
<g transform='matrix(0 -1 1 0 -19.501 246.241)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-49'/>
<use x='121.25' y='188.674' xlink:href='#g2-52'/>
</g>
<g transform='matrix(0 -1 1 0 39.168 220.252)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-53'/>
<use x='121.25' y='188.674' xlink:href='#g2-54'/>
</g>
<g transform='matrix(0 -1 1 0 97.837 200.651)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-56'/>
<use x='121.25' y='188.674' xlink:href='#g2-55'/>
</g>
<g transform='matrix(0 -1 1 0 156.506 242.483)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-50'/>
<use x='121.25' y='188.674' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 215.175 226.514)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-52'/>
<use x='121.25' y='188.674' xlink:href='#g2-54'/>
</g>
<g transform='matrix(0 -1 1 0 -72.94 254.382)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-49'/>
</g>
<g transform='matrix(0 -1 1 0 -14.271 253.567)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-50'/>
</g>
<g transform='matrix(0 -1 1 0 44.398 256.135)'>
<use x='114.487' y='188.674' xlink:href='#g2-48'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-57'/>
<use x='121.25' y='188.674' xlink:href='#g2-56'/>
</g>
<g transform='matrix(0 -1 1 0 103.067 257.638)'>
<use x='114.487' y='188.674' xlink:href='#g2-48'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-57'/>
<use x='121.25' y='188.674' xlink:href='#g2-54'/>
</g>
<g transform='matrix(0 -1 1 0 161.736 212.675)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-54'/>
<use x='121.25' y='188.674' xlink:href='#g2-56'/>
</g>
<g transform='matrix(0 -1 1 0 220.405 223.884)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-53'/>
<use x='121.25' y='188.674' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 -67.709 251.689)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-53'/>
</g>
<g transform='matrix(0 -1 1 0 -9.04 240.73)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-50'/>
<use x='121.25' y='188.674' xlink:href='#g2-51'/>
</g>
<g transform='matrix(0 -1 1 0 49.629 241.105)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-50'/>
<use x='121.25' y='188.674' xlink:href='#g2-50'/>
</g>
<g transform='matrix(0 -1 1 0 108.298 219)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-53'/>
<use x='121.25' y='188.674' xlink:href='#g2-56'/>
</g>
<g transform='matrix(0 -1 1 0 166.967 192.447)'>
<use x='109.598' y='188.674' xlink:href='#g4-1'/>
<use x='113.103' y='188.674' xlink:href='#g4-1'/>
<use x='116.608' y='188.674' xlink:href='#g4-1'/>
<use x='120.114' y='188.674' xlink:href='#g2-50'/>
<use x='122.76' y='188.674' xlink:href='#g2-46'/>
<use x='124.23' y='188.674' xlink:href='#g2-49'/>
<use x='126.877' y='188.674' xlink:href='#g2-57'/>
<use x='129.523' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 225.636 192.447)'>
<use x='109.598' y='188.674' xlink:href='#g4-1'/>
<use x='113.103' y='188.674' xlink:href='#g4-1'/>
<use x='116.608' y='188.674' xlink:href='#g4-1'/>
<use x='120.114' y='188.674' xlink:href='#g2-50'/>
<use x='122.76' y='188.674' xlink:href='#g2-46'/>
<use x='124.23' y='188.674' xlink:href='#g2-49'/>
<use x='126.877' y='188.674' xlink:href='#g2-55'/>
<use x='129.523' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 -62.479 245.051)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-49'/>
<use x='121.25' y='188.674' xlink:href='#g2-54'/>
</g>
<g transform='matrix(0 -1 1 0 -3.81 228.706)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-52'/>
<use x='121.25' y='188.674' xlink:href='#g2-50'/>
</g>
<g transform='matrix(0 -1 1 0 54.859 249.246)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-57'/>
</g>
<g transform='matrix(0 -1 1 0 113.528 192.447)'>
<use x='109.598' y='188.674' xlink:href='#g4-1'/>
<use x='113.103' y='188.674' xlink:href='#g4-1'/>
<use x='116.608' y='188.674' xlink:href='#g4-1'/>
<use x='120.114' y='188.674' xlink:href='#g2-49'/>
<use x='122.76' y='188.674' xlink:href='#g2-53'/>
<use x='125.406' y='188.674' xlink:href='#g2-53'/>
<use x='128.053' y='188.674' xlink:href='#g2-46'/>
<use x='129.523' y='188.674' xlink:href='#g2-50'/>
<use x='132.169' y='188.674' xlink:href='#g2-51'/>
<use x='134.816' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 172.197 195.579)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-57'/>
<use x='121.25' y='188.674' xlink:href='#g2-53'/>
</g>
<g transform='matrix(0 -1 1 0 230.866 192.447)'>
<use x='109.598' y='188.674' xlink:href='#g4-1'/>
<use x='113.103' y='188.674' xlink:href='#g4-1'/>
<use x='116.608' y='188.674' xlink:href='#g4-1'/>
<use x='120.114' y='188.674' xlink:href='#g2-50'/>
<use x='122.76' y='188.674' xlink:href='#g2-46'/>
<use x='124.23' y='188.674' xlink:href='#g2-55'/>
<use x='126.877' y='188.674' xlink:href='#g2-57'/>
<use x='129.523' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 -57.249 249.747)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-56'/>
</g>
<g transform='matrix(0 -1 1 0 1.42 239.728)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-50'/>
<use x='121.25' y='188.674' xlink:href='#g2-52'/>
</g>
<g transform='matrix(0 -1 1 0 60.089 248.244)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-49'/>
<use x='121.25' y='188.674' xlink:href='#g2-49'/>
</g>
<g transform='matrix(0 -1 1 0 118.758 207.79)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-55'/>
<use x='121.25' y='188.674' xlink:href='#g2-53'/>
</g>
<g transform='matrix(0 -1 1 0 177.427 213.802)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-54'/>
<use x='121.25' y='188.674' xlink:href='#g2-54'/>
</g>
<g transform='matrix(0 -1 1 0 236.096 192.447)'>
<use x='109.598' y='188.674' xlink:href='#g4-1'/>
<use x='113.103' y='188.674' xlink:href='#g4-1'/>
<use x='116.608' y='188.674' xlink:href='#g4-1'/>
<use x='120.114' y='188.674' xlink:href='#g2-51'/>
<use x='122.76' y='188.674' xlink:href='#g2-46'/>
<use x='124.23' y='188.674' xlink:href='#g2-48'/>
<use x='126.877' y='188.674' xlink:href='#g2-57'/>
<use x='129.523' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 -52.018 247.117)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-49'/>
<use x='121.25' y='188.674' xlink:href='#g2-51'/>
</g>
<g transform='matrix(0 -1 1 0 6.651 246.992)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-49'/>
<use x='121.25' y='188.674' xlink:href='#g2-51'/>
</g>
<g transform='matrix(0 -1 1 0 65.32 252.378)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-52'/>
</g>
<g transform='matrix(0 -1 1 0 123.989 231.462)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-51'/>
<use x='121.25' y='188.674' xlink:href='#g2-56'/>
</g>
<g transform='matrix(0 -1 1 0 182.658 249.747)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-56'/>
</g>
<g transform='matrix(0 -1 1 0 241.327 192.447)'>
<use x='109.598' y='188.674' xlink:href='#g4-1'/>
<use x='113.103' y='188.674' xlink:href='#g4-1'/>
<use x='116.608' y='188.674' xlink:href='#g4-1'/>
<use x='120.114' y='188.674' xlink:href='#g2-50'/>
<use x='122.76' y='188.674' xlink:href='#g2-46'/>
<use x='124.23' y='188.674' xlink:href='#g2-48'/>
<use x='126.877' y='188.674' xlink:href='#g2-51'/>
<use x='129.523' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 -129.314 316.355)'>
<use x='114.487' y='188.674' xlink:href='#g1-82'/>
<use x='120.457' y='188.674' xlink:href='#g1-101'/>
<use x='124.553' y='188.674' xlink:href='#g1-108'/>
<use x='126.753' y='188.674' xlink:href='#g1-97'/>
<use x='131.181' y='188.674' xlink:href='#g1-116'/>
<use x='134.509' y='188.674' xlink:href='#g1-105'/>
<use x='136.709' y='188.674' xlink:href='#g1-118'/>
<use x='140.957' y='188.674' xlink:href='#g1-101'/>
<use x='148.124' y='188.674' xlink:href='#g1-116'/>
<use x='151.452' y='188.674' xlink:href='#g1-105'/>
<use x='153.652' y='188.674' xlink:href='#g1-109'/>
<use x='160.972' y='188.674' xlink:href='#g1-101'/>
<use x='168.139' y='188.674' xlink:href='#g3-40'/>
<use x='171.432' y='188.674' xlink:href='#g3-108'/>
<use x='173.453' y='188.674' xlink:href='#g3-111'/>
<use x='177.452' y='188.674' xlink:href='#g3-119'/>
<use x='183' y='188.674' xlink:href='#g3-101'/>
<use x='186.764' y='188.674' xlink:href='#g3-114'/>
<use x='192.479' y='188.674' xlink:href='#g3-105'/>
<use x='194.499' y='188.674' xlink:href='#g3-115'/>
<use x='200.568' y='188.674' xlink:href='#g3-98'/>
<use x='205.176' y='188.674' xlink:href='#g3-101'/>
<use x='208.94' y='188.674' xlink:href='#g3-116'/>
<use x='211.998' y='188.674' xlink:href='#g3-116'/>
<use x='215.056' y='188.674' xlink:href='#g3-101'/>
<use x='218.819' y='188.674' xlink:href='#g3-114'/>
<use x='221.711' y='188.674' xlink:href='#g3-41'/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 80 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 97 KiB

View File

@ -0,0 +1,955 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- This file was generated by dvisvgm 2.9.1 -->
<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='381.629pt' height='170.383pt' viewBox='52.934 54.994 381.629 170.383'>
<rect width="1000%" height="1000%" fill="white"/>
<defs>
<clipPath id='clip3'>
<path d='M82.148 209.23H434.164V83.984H82.148Z'/>
</clipPath>
<use id='g3-40' xlink:href='#g0-40' transform='scale(1.143)'/>
<use id='g3-41' xlink:href='#g0-41' transform='scale(1.143)'/>
<use id='g3-78' xlink:href='#g0-78' transform='scale(1.143)'/>
<use id='g3-97' xlink:href='#g0-97' transform='scale(1.143)'/>
<use id='g3-98' xlink:href='#g0-98' transform='scale(1.143)'/>
<use id='g3-99' xlink:href='#g0-99' transform='scale(1.143)'/>
<use id='g3-100' xlink:href='#g0-100' transform='scale(1.143)'/>
<use id='g3-101' xlink:href='#g0-101' transform='scale(1.143)'/>
<use id='g3-102' xlink:href='#g0-102' transform='scale(1.143)'/>
<use id='g3-105' xlink:href='#g0-105' transform='scale(1.143)'/>
<use id='g3-108' xlink:href='#g0-108' transform='scale(1.143)'/>
<use id='g3-109' xlink:href='#g0-109' transform='scale(1.143)'/>
<use id='g3-110' xlink:href='#g0-110' transform='scale(1.143)'/>
<use id='g3-111' xlink:href='#g0-111' transform='scale(1.143)'/>
<use id='g3-112' xlink:href='#g0-112' transform='scale(1.143)'/>
<use id='g3-114' xlink:href='#g0-114' transform='scale(1.143)'/>
<use id='g3-115' xlink:href='#g0-115' transform='scale(1.143)'/>
<use id='g3-116' xlink:href='#g0-116' transform='scale(1.143)'/>
<use id='g3-119' xlink:href='#g0-119' transform='scale(1.143)'/>
<use id='g2-46' xlink:href='#g0-46' transform='scale(.714)'/>
<use id='g2-48' xlink:href='#g0-48' transform='scale(.714)'/>
<use id='g2-49' xlink:href='#g0-49' transform='scale(.714)'/>
<use id='g2-50' xlink:href='#g0-50' transform='scale(.714)'/>
<use id='g2-51' xlink:href='#g0-51' transform='scale(.714)'/>
<use id='g2-52' xlink:href='#g0-52' transform='scale(.714)'/>
<use id='g2-53' xlink:href='#g0-53' transform='scale(.714)'/>
<use id='g2-54' xlink:href='#g0-54' transform='scale(.714)'/>
<use id='g2-55' xlink:href='#g0-55' transform='scale(.714)'/>
<use id='g2-56' xlink:href='#g0-56' transform='scale(.714)'/>
<use id='g2-57' xlink:href='#g0-57' transform='scale(.714)'/>
<use id='g2-120' xlink:href='#g0-120' transform='scale(.714)'/>
<path id='g4-1' d='M1.445-1.245C1.445-1.41 1.305-1.549 1.141-1.549S.837-1.41 .837-1.245S.976-.941 1.141-.941S1.445-1.081 1.445-1.245Z'/>
<path id='g1-82' d='M3.891-2.914C4.806-3.165 5.452-3.811 5.452-4.546C5.452-5.469 4.411-6.223 3.129-6.223H.87V0H1.704V-2.824H3.138L4.842 0H5.703L3.891-2.914ZM1.704-3.407V-5.694H3.022C4.062-5.694 4.671-5.192 4.671-4.546C4.671-3.963 4.125-3.407 3.022-3.407H1.704Z'/>
<path id='g1-97' d='M3.694-2.591C3.694-3.479 3.04-4.133 2.152-4.133C1.569-4.133 1.139-3.981 .708-3.739L.762-3.102C1.21-3.434 1.65-3.569 2.143-3.569C2.645-3.569 2.95-3.165 2.95-2.582V-2.206C1.408-2.17 .395-1.766 .395-1.04C.395-.619 .672 .099 1.453 .099C1.632 .099 2.412 .081 2.977-.341V0H3.694V-2.591ZM2.95-1.255C2.95-1.067 2.95-.843 2.627-.655C2.403-.52 2.107-.484 1.928-.484C1.47-.484 1.085-.699 1.085-1.058C1.085-1.695 2.833-1.722 2.95-1.722V-1.255Z'/>
<path id='g1-101' d='M3.829-1.964C3.829-2.242 3.82-2.923 3.47-3.461C3.093-4.026 2.52-4.133 2.179-4.133C1.139-4.133 .314-3.174 .314-2.026C.314-.843 1.193 .099 2.313 .099C2.744 .099 3.264-.009 3.784-.341L3.73-.959C3.165-.556 2.636-.484 2.322-.484C1.578-.484 1.004-1.139 .977-1.964H3.829ZM1.031-2.493C1.175-3.067 1.614-3.551 2.179-3.551C2.511-3.551 3.12-3.398 3.291-2.493H1.031Z'/>
<path id='g1-105' d='M1.524-6.133H.664V-5.272H1.524V-6.133ZM1.453-3.981H.735V0H1.453V-3.981Z'/>
<path id='g1-108' d='M1.453-6.223H.735V0H1.453V-6.223Z'/>
<path id='g1-109' d='M6.581-2.663C6.581-3.327 6.402-4.08 5.317-4.08C4.564-4.08 4.142-3.622 3.927-3.344C3.865-3.524 3.676-4.08 2.762-4.08C2.053-4.08 1.623-3.667 1.417-3.398V-4.035H.726V0H1.47V-2.188C1.47-2.78 1.704-3.497 2.385-3.497C3.282-3.497 3.282-2.86 3.282-2.6V0H4.026V-2.188C4.026-2.78 4.259-3.497 4.94-3.497C5.837-3.497 5.837-2.86 5.837-2.6V0H6.581V-2.663Z'/>
<path id='g1-116' d='M1.623-3.425H2.914V-3.981H1.623V-5.12H.959V-3.981H.17V-3.425H.933V-1.13C.933-.601 1.049 .099 1.704 .099C2.098 .099 2.564 .018 3.067-.233L2.914-.798C2.681-.619 2.367-.511 2.089-.511C1.739-.511 1.623-.825 1.623-1.291V-3.425Z'/>
<path id='g1-118' d='M4.116-3.981H3.407L2.699-2.161C2.52-1.695 2.188-.825 2.143-.493H2.125C2.107-.646 2.08-.816 1.587-2.107C1.318-2.833 .879-3.927 .861-3.981H.126L1.704 0H2.537L4.116-3.981Z'/>
<path id='g0-40' d='M2.127-5.23C2.008-5.23 1.995-5.23 1.911-5.154C1.032-4.387 .586-3.145 .586-1.743C.586-.425 .983 .844 1.904 1.653C1.995 1.743 2.008 1.743 2.127 1.743H2.462C2.441 1.73 1.764 1.151 1.444 .063C1.276-.481 1.193-1.053 1.193-1.743C1.193-4.156 2.322-5.112 2.462-5.23H2.127Z'/>
<path id='g0-41' d='M.746 1.743C.865 1.743 .879 1.743 .962 1.667C1.841 .9 2.287-.342 2.287-1.743C2.287-3.062 1.89-4.331 .969-5.14C.879-5.23 .865-5.23 .746-5.23H.411C.432-5.216 1.109-4.638 1.43-3.55C1.597-3.006 1.681-2.434 1.681-1.743C1.681 .669 .551 1.625 .411 1.743H.746Z'/>
<path id='g0-46' d='M1.339-.628H.711V0H1.339V-.628Z'/>
<path id='g0-48' d='M3.403-2.267C3.403-2.601 3.403-3.417 3.075-3.989C2.72-4.617 2.183-4.721 1.848-4.721C1.534-4.721 .99-4.624 .642-4.024C.307-3.466 .293-2.706 .293-2.267C.293-1.75 .321-1.116 .614-.586C.921-.021 1.437 .146 1.848 .146C2.545 .146 2.929-.258 3.138-.697C3.382-1.193 3.403-1.834 3.403-2.267ZM1.848-.314C1.555-.314 1.22-.481 1.046-.983C.907-1.409 .9-1.848 .9-2.357C.9-2.999 .9-4.261 1.848-4.261S2.797-2.999 2.797-2.357C2.797-1.897 2.797-1.374 2.629-.928C2.434-.425 2.078-.314 1.848-.314Z'/>
<path id='g0-49' d='M2.239-4.721H2.085C1.632-4.303 1.06-4.275 .642-4.261V-3.822C.914-3.829 1.262-3.843 1.611-3.982V-.439H.683V0H3.166V-.439H2.239V-4.721Z'/>
<path id='g0-50' d='M1.974-.537C1.89-.537 1.806-.53 1.723-.53H.928L2.008-1.485C2.134-1.597 2.476-1.855 2.608-1.967C2.915-2.246 3.327-2.608 3.327-3.215C3.327-4.003 2.741-4.721 1.743-4.721C1.004-4.721 .544-4.324 .307-3.612L.635-3.201C.795-3.787 1.039-4.24 1.646-4.24C2.232-4.24 2.678-3.829 2.678-3.201C2.678-2.622 2.336-2.294 1.918-1.897C1.778-1.757 1.402-1.444 1.255-1.304C1.053-1.123 .572-.656 .37-.481V0H3.327V-.537H1.974Z'/>
<path id='g0-51' d='M.697-3.578C.983-4.135 1.485-4.289 1.82-4.289C2.232-4.289 2.538-4.052 2.538-3.654C2.538-3.285 2.287-2.831 1.757-2.741C1.723-2.734 1.695-2.734 1.234-2.699V-2.239H1.778C2.441-2.239 2.685-1.716 2.685-1.276C2.685-.732 2.35-.314 1.806-.314C1.311-.314 .746-.551 .398-.997L.307-.544C.711-.091 1.276 .146 1.82 .146C2.734 .146 3.389-.537 3.389-1.269C3.389-1.841 2.929-2.301 2.378-2.462C2.908-2.734 3.18-3.201 3.18-3.654C3.18-4.247 2.573-4.721 1.827-4.721C1.213-4.721 .704-4.4 .411-3.982L.697-3.578Z'/>
<path id='g0-52' d='M2.762-1.165H3.487V-1.625H2.762V-4.575H2.071L.209-1.625V-1.165H2.162V0H2.762V-1.165ZM.802-1.625C1.011-1.953 2.211-3.815 2.211-4.233V-1.625H.802Z'/>
<path id='g0-53' d='M1.144-4.094H3.075V-4.575H.586V-1.967H1.095C1.262-2.343 1.59-2.511 1.904-2.511C2.19-2.511 2.622-2.315 2.622-1.43C2.622-.516 2.043-.314 1.688-.314C1.227-.314 .781-.558 .544-.955L.279-.537C.621-.112 1.137 .146 1.688 .146C2.608 .146 3.327-.565 3.327-1.416C3.327-2.28 2.685-2.971 1.918-2.971C1.618-2.971 1.353-2.866 1.144-2.692V-4.094Z'/>
<path id='g0-54' d='M3.062-4.582C2.685-4.721 2.42-4.721 2.287-4.721C1.227-4.721 .307-3.724 .307-2.253C.307-.363 1.158 .146 1.862 .146C2.427 .146 2.72-.119 2.936-.342C3.382-.816 3.389-1.311 3.389-1.555C3.389-2.469 2.894-3.229 2.218-3.229C1.534-3.229 1.165-2.873 .962-2.671C1.053-3.626 1.541-4.289 2.294-4.289C2.434-4.289 2.713-4.275 3.062-4.142V-4.582ZM.969-1.534C.969-1.576 .969-1.681 .976-1.716C.976-2.19 1.276-2.769 1.897-2.769C2.748-2.769 2.748-1.792 2.748-1.555C2.748-1.29 2.748-.997 2.559-.704C2.392-.453 2.183-.314 1.862-.314C1.123-.314 1.004-1.227 .969-1.534Z'/>
<path id='g0-55' d='M1.723-4.038C1.806-4.038 1.89-4.045 1.974-4.045H2.852C1.792-3.006 1.116-1.548 1.116 .07H1.771C1.771-1.967 2.762-3.431 3.389-4.087V-4.575H.307V-4.038H1.723Z'/>
<path id='g0-56' d='M2.385-2.469C2.845-2.615 3.285-2.985 3.285-3.501C3.285-4.135 2.678-4.721 1.848-4.721S.411-4.135 .411-3.501C.411-2.978 .865-2.608 1.311-2.469C.697-2.28 .307-1.806 .307-1.269C.307-.523 .969 .146 1.848 .146S3.389-.523 3.389-1.269C3.389-1.806 2.992-2.28 2.385-2.469ZM1.848-2.699C1.353-2.699 .948-2.985 .948-3.494C.948-3.94 1.262-4.289 1.848-4.289C2.427-4.289 2.748-3.94 2.748-3.494C2.748-2.999 2.357-2.699 1.848-2.699ZM1.848-.314C1.367-.314 .941-.621 .941-1.276C.941-1.904 1.346-2.239 1.848-2.239S2.755-1.897 2.755-1.276C2.755-.621 2.322-.314 1.848-.314Z'/>
<path id='g0-57' d='M.537-.174C.879 .077 1.193 .146 1.52 .146C2.497 .146 3.389-.837 3.389-2.336C3.389-4.24 2.545-4.721 1.876-4.721C1.255-4.721 .969-4.428 .767-4.226C.321-3.773 .307-3.292 .307-3.02C.307-2.12 .795-1.346 1.478-1.346C2.267-1.346 2.699-1.869 2.734-1.911C2.636-.802 2.092-.314 1.52-.314C1.158-.314 .934-.446 .774-.579L.537-.174ZM2.713-3.027C2.72-2.985 2.72-2.915 2.72-2.873C2.72-2.357 2.406-1.806 1.799-1.806C1.534-1.806 1.325-1.883 1.144-2.169C.962-2.441 .948-2.706 .948-3.02C.948-3.292 .948-3.605 1.165-3.912C1.311-4.122 1.52-4.289 1.869-4.289C2.545-4.289 2.692-3.473 2.713-3.027Z'/>
<path id='g0-78' d='M1.646-4.84H.697V0H1.283V-4.289H1.29L3.578 0H4.526V-4.84H3.94V-.551H3.933L1.646-4.84Z'/>
<path id='g0-97' d='M2.971-2.008C2.971-2.72 2.427-3.201 1.736-3.201C1.297-3.201 .962-3.11 .572-2.901L.614-2.392C.844-2.545 1.186-2.755 1.736-2.755C2.043-2.755 2.364-2.525 2.364-2.001V-1.723C1.332-1.688 .314-1.471 .314-.823C.314-.474 .551 .07 1.165 .07C1.465 .07 2.015 .007 2.385-.265V0H2.971V-2.008ZM2.364-.99C2.364-.851 2.364-.669 2.12-.523C1.897-.398 1.625-.391 1.548-.391C1.165-.391 .872-.565 .872-.83C.872-1.276 2.05-1.318 2.364-1.332V-.99Z'/>
<path id='g0-98' d='M1.179-4.84H.593V0H1.2V-.328C1.353-.195 1.688 .07 2.197 .07C2.957 .07 3.571-.642 3.571-1.555C3.571-2.399 3.089-3.166 2.392-3.166C1.953-3.166 1.527-3.027 1.179-2.769V-4.84ZM1.2-2.197C1.2-2.308 1.2-2.392 1.444-2.552C1.548-2.615 1.736-2.706 1.974-2.706C2.441-2.706 2.964-2.392 2.964-1.555C2.964-.704 2.385-.391 1.897-.391C1.639-.391 1.395-.509 1.2-.823V-2.197Z'/>
<path id='g0-99' d='M3.034-.76C2.685-.537 2.308-.411 1.876-.411C1.234-.411 .858-.928 .858-1.555C.858-2.092 1.137-2.72 1.897-2.72C2.371-2.72 2.594-2.622 2.95-2.399L3.041-2.901C2.622-3.11 2.441-3.201 1.897-3.201C.851-3.201 .251-2.357 .251-1.548C.251-.697 .921 .07 1.869 .07C2.357 .07 2.776-.077 3.075-.251L3.034-.76Z'/>
<path id='g0-100' d='M3.229-4.84H2.643V-2.797C2.197-3.124 1.743-3.166 1.541-3.166C.809-3.166 .251-2.434 .251-1.548S.802 .07 1.52 .07C1.953 .07 2.357-.126 2.622-.363V0H3.229V-4.84ZM2.622-.865C2.448-.579 2.183-.391 1.848-.391C1.36-.391 .858-.732 .858-1.541C.858-2.413 1.451-2.706 1.925-2.706C2.204-2.706 2.441-2.587 2.622-2.35V-.865Z'/>
<path id='g0-101' d='M2.999-.76C2.608-.481 2.169-.391 1.869-.391C1.262-.391 .802-.886 .781-1.527H3.068C3.068-1.848 3.034-2.315 2.762-2.713C2.511-3.068 2.092-3.201 1.75-3.201C.9-3.201 .244-2.455 .244-1.569C.244-.676 .941 .07 1.862 .07C2.267 .07 2.685-.049 3.041-.265L2.999-.76ZM.83-1.946C.99-2.504 1.402-2.741 1.75-2.741C2.057-2.741 2.511-2.594 2.643-1.946H.83Z'/>
<path id='g0-102' d='M1.325-2.657H2.12V-3.096H1.304V-3.898C1.304-4.38 1.743-4.449 1.974-4.449C2.12-4.449 2.308-4.428 2.566-4.331V-4.84C2.385-4.882 2.169-4.91 1.981-4.91C1.262-4.91 .739-4.394 .739-3.703V-3.096H.202V-2.657H.739V0H1.325V-2.657Z'/>
<path id='g0-105' d='M1.227-4.784H.523V-4.08H1.227V-4.784ZM1.172-3.096H.586V0H1.172V-3.096Z'/>
<path id='g0-108' d='M1.172-4.84H.586V0H1.172V-4.84Z'/>
<path id='g0-109' d='M5.3-2.064C5.3-2.608 5.14-3.166 4.282-3.166C3.696-3.166 3.333-2.824 3.166-2.601C3.096-2.79 2.922-3.166 2.225-3.166C1.827-3.166 1.444-3.006 1.137-2.636V-3.145H.579V0H1.186V-1.695C1.186-2.155 1.381-2.706 1.918-2.706C2.636-2.706 2.636-2.218 2.636-2.015V0H3.243V-1.695C3.243-2.155 3.438-2.706 3.975-2.706C4.693-2.706 4.693-2.218 4.693-2.015V0H5.3V-2.064Z'/>
<path id='g0-110' d='M3.243-2.064C3.243-2.608 3.082-3.166 2.225-3.166C1.827-3.166 1.444-3.006 1.137-2.636V-3.145H.579V0H1.186V-1.695C1.186-2.155 1.381-2.706 1.918-2.706C2.636-2.706 2.636-2.218 2.636-2.015V0H3.243V-2.064Z'/>
<path id='g0-111' d='M3.487-1.527C3.487-2.448 2.755-3.201 1.848-3.201S.209-2.441 .209-1.527C.209-.642 .948 .07 1.848 .07C2.755 .07 3.487-.642 3.487-1.527ZM1.848-.411C1.297-.411 .816-.816 .816-1.604S1.332-2.741 1.848-2.741C2.371-2.741 2.88-2.378 2.88-1.604C2.88-.809 2.385-.411 1.848-.411Z'/>
<path id='g0-112' d='M1.2-.328C1.569 .007 1.967 .07 2.204 .07C2.943 .07 3.571-.635 3.571-1.555C3.571-2.392 3.11-3.166 2.42-3.166C2.106-3.166 1.583-3.075 1.179-2.762V-3.096H.593V1.353H1.2V-.328ZM1.2-2.315C1.36-2.511 1.632-2.685 1.967-2.685C2.525-2.685 2.964-2.169 2.964-1.555C2.964-.865 2.441-.391 1.897-.391C1.792-.391 1.618-.404 1.437-.551C1.227-.711 1.2-.816 1.2-.948V-2.315Z'/>
<path id='g0-114' d='M1.179-1.485C1.179-2.239 1.806-2.643 2.42-2.65V-3.166C1.834-3.159 1.409-2.873 1.13-2.504V-3.145H.593V0H1.179V-1.485Z'/>
<path id='g0-115' d='M2.545-2.985C2.071-3.18 1.723-3.201 1.471-3.201C1.297-3.201 .244-3.201 .244-2.273C.244-1.946 .425-1.764 .516-1.681C.76-1.437 1.053-1.381 1.423-1.311C1.75-1.248 2.127-1.179 2.127-.844C2.127-.404 1.548-.404 1.451-.404C1.004-.404 .586-.565 .307-.76L.209-.237C.446-.119 .872 .07 1.451 .07C1.764 .07 2.071 .021 2.329-.167C2.587-.363 2.671-.669 2.671-.907C2.671-1.032 2.657-1.304 2.364-1.569C2.106-1.799 1.855-1.848 1.52-1.911C1.109-1.988 .788-2.05 .788-2.357C.788-2.755 1.297-2.755 1.402-2.755C1.799-2.755 2.106-2.671 2.455-2.49L2.545-2.985Z'/>
<path id='g0-116' d='M1.311-2.657H2.343V-3.096H1.311V-3.982H.774V-3.096H.139V-2.657H.753V-.893C.753-.425 .872 .07 1.374 .07S2.26-.091 2.469-.188L2.35-.635C2.12-.467 1.876-.411 1.681-.411C1.388-.411 1.311-.697 1.311-1.018V-2.657Z'/>
<path id='g0-119' d='M4.951-3.096H4.407C4.345-2.901 3.954-1.723 3.738-.997C3.682-.795 3.612-.572 3.592-.411H3.585C3.543-.697 3.299-1.451 3.285-1.499L2.769-3.096H2.239C2.036-2.497 1.513-.934 1.458-.425H1.451C1.395-.921 .879-2.462 .767-2.797C.711-2.964 .711-2.978 .676-3.096H.105L1.123 0H1.709C1.716-.028 1.904-.579 2.148-1.353C2.253-1.695 2.462-2.364 2.497-2.671L2.504-2.678C2.518-2.532 2.559-2.378 2.608-2.204S2.706-1.841 2.755-1.681L3.292 0H3.933L4.951-3.096Z'/>
<path id='g0-120' d='M1.932-1.597L3.285-3.096H2.671L1.681-1.953L.669-3.096H.042L1.437-1.597L0 0H.621L1.681-1.311L2.783 0H3.41L1.932-1.597Z'/>
</defs>
<g id='page3'>
<path d='M140.82 218.086V209.23M199.488 218.086V209.23M258.156 218.086V209.23M316.824 218.086V209.23M375.496 218.086V209.23M140.82 75.129V83.984M199.488 75.129V83.984M258.156 75.129V83.984M316.824 75.129V83.984M375.496 75.129V83.984' stroke='#808080' fill='none' stroke-width='.199' stroke-miterlimit='10'/>
<path d='M111.484 213.484V209.23M170.152 213.484V209.23M228.824 213.484V209.23M287.492 213.484V209.23M346.16 213.484V209.23M404.828 213.484V209.23M111.484 79.734V83.984M170.152 79.734V83.984M228.824 79.734V83.984M287.492 79.734V83.984M346.16 79.734V83.984M404.828 79.734V83.984' stroke='#808080' fill='none' stroke-width='.199' stroke-miterlimit='10'/>
<path d='M82.148 209.23H86.402M82.148 177.918H86.402M82.148 146.609H86.402M82.148 115.297H86.402M82.148 83.984H86.402M434.164 209.23H429.91M434.164 177.918H429.91M434.164 146.609H429.91M434.164 115.297H429.91M434.164 83.984H429.91' stroke='#808080' fill='none' stroke-width='.199' stroke-miterlimit='10'/>
<path d='M82.148 209.23V83.984H434.164V209.23H82.148Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10'/>
<g transform='matrix(1 0 0 1 -11.54 34.954)'>
<use x='114.487' y='188.674' xlink:href='#g3-99'/>
<use x='118.25' y='188.674' xlink:href='#g3-102'/>
<use x='120.838' y='188.674' xlink:href='#g3-114'/>
<use x='123.73' y='188.674' xlink:href='#g3-97'/>
<use x='127.798' y='188.674' xlink:href='#g3-99'/>
</g>
<g transform='matrix(1 0 0 1 45.565 34.954)'>
<use x='114.487' y='188.674' xlink:href='#g3-108'/>
<use x='116.507' y='188.674' xlink:href='#g3-101'/>
<use x='120.271' y='188.674' xlink:href='#g3-97'/>
<use x='124.339' y='188.674' xlink:href='#g3-110'/>
<use x='128.711' y='188.674' xlink:href='#g3-78'/>
</g>
<g transform='matrix(1 0 0 1 106.188 34.954)'>
<use x='114.487' y='188.674' xlink:href='#g3-114'/>
<use x='117.379' y='188.674' xlink:href='#g3-101'/>
<use x='121.142' y='188.674' xlink:href='#g3-100'/>
<use x='125.515' y='188.674' xlink:href='#g3-105'/>
<use x='127.535' y='188.674' xlink:href='#g3-115'/>
</g>
<g transform='matrix(1 0 0 1 159.716 34.954)'>
<use x='114.487' y='188.674' xlink:href='#g3-108'/>
<use x='116.507' y='188.674' xlink:href='#g3-97'/>
<use x='120.34' y='188.674' xlink:href='#g3-114'/>
<use x='123.232' y='188.674' xlink:href='#g3-115'/>
<use x='126.478' y='188.674' xlink:href='#g3-111'/>
<use x='130.712' y='188.674' xlink:href='#g3-110'/>
<use x='135.085' y='188.674' xlink:href='#g3-78'/>
</g>
<g transform='matrix(1 0 0 1 215.596 34.954)'>
<use x='114.487' y='188.674' xlink:href='#g3-109'/>
<use x='121.211' y='188.674' xlink:href='#g3-115'/>
<use x='124.458' y='188.674' xlink:href='#g3-116'/>
<use x='127.516' y='188.674' xlink:href='#g3-114'/>
<use x='130.408' y='188.674' xlink:href='#g3-101'/>
<use x='134.171' y='188.674' xlink:href='#g3-115'/>
<use x='137.418' y='188.674' xlink:href='#g3-115'/>
<use x='140.664' y='188.674' xlink:href='#g3-78'/>
</g>
<g transform='matrix(1 0 0 1 277.158 34.954)'>
<use x='114.487' y='188.674' xlink:href='#g3-114'/>
<use x='117.379' y='188.674' xlink:href='#g3-112'/>
<use x='121.751' y='188.674' xlink:href='#g3-116'/>
<use x='124.809' y='188.674' xlink:href='#g3-101'/>
<use x='128.573' y='188.674' xlink:href='#g3-115'/>
<use x='131.819' y='188.674' xlink:href='#g3-116'/>
<use x='134.877' y='188.674' xlink:href='#g3-78'/>
</g>
<g transform='matrix(1 0 0 1 -40.942 22.192)'>
<use x='114.487' y='188.674' xlink:href='#g2-48'/>
<use x='117.133' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(1 0 0 1 -45.059 -9.12)'>
<use x='114.487' y='188.674' xlink:href='#g2-48'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-53'/>
<use x='121.25' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(1 0 0 1 -45.059 -40.431)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(1 0 0 1 -45.059 -71.743)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-53'/>
<use x='121.25' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(1 0 0 1 -45.059 -103.054)'>
<use x='114.487' y='188.674' xlink:href='#g2-50'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-120'/>
</g>
<path d='M82.148 146.609H434.164' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M86.328 209.23H89.566V146.609H86.328ZM144.996 209.23H148.234V146.609H144.996ZM203.668 209.23H206.902V146.609H203.668ZM262.336 209.23H265.574V146.609H262.336ZM321.004 209.23H324.242V146.609H321.004ZM379.672 209.23H382.91V146.609H379.672Z' fill='#933' clip-path='url(#clip3)'/>
<path d='M86.328 209.23H89.566V146.609H86.328ZM144.996 209.23H148.234V146.609H144.996ZM203.668 209.23H206.902V146.609H203.668ZM262.336 209.23H265.574V146.609H262.336ZM321.004 209.23H324.242V146.609H321.004ZM379.672 209.23H382.91V146.609H379.672Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M87.949 146.609' fill='#933' clip-path='url(#clip3)'/>
<path d='M85.953 146.609H89.938' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M87.949 146.609' fill='#933' clip-path='url(#clip3)'/>
<path d='M85.953 146.609H89.938' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M146.617 146.609V146.105' fill='#933' clip-path='url(#clip3)'/>
<path d='M146.617 146.609V146.105' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M144.625 146.105H148.609' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M146.617 146.609V147.109' fill='#933' clip-path='url(#clip3)'/>
<path d='M146.617 146.609V147.109' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M148.61 147.109H144.625' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M205.285 146.609V146.359' fill='#933' clip-path='url(#clip3)'/>
<path d='M205.285 146.609V146.359' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M203.293 146.36H207.277' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M205.285 146.609V146.859' fill='#933' clip-path='url(#clip3)'/>
<path d='M205.285 146.609V146.859' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M207.278 146.86H203.293' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M263.953 146.609V145.105' fill='#933' clip-path='url(#clip3)'/>
<path d='M263.953 146.609V145.105' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M261.961 145.105H265.945' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M263.953 146.609V148.109' fill='#933' clip-path='url(#clip3)'/>
<path d='M263.953 146.609V148.109' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M265.949 148.109H261.961' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M322.625 146.609V144.73' fill='#933' clip-path='url(#clip3)'/>
<path d='M322.625 146.609V144.73' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M320.629 144.73H324.617' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M322.625 146.609V148.488' fill='#933' clip-path='url(#clip3)'/>
<path d='M322.625 146.609V148.488' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M324.617 148.488H320.633' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M381.293 146.609V140.785' fill='#933' clip-path='url(#clip3)'/>
<path d='M381.293 146.609V140.785' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M379.301 140.785H383.285' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M381.293 146.609V152.434' fill='#933' clip-path='url(#clip3)'/>
<path d='M381.293 146.609V152.434' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M383.285 152.434H379.301' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M91.559 209.23H94.797V146.23H91.559ZM150.227 209.23H153.465V146.547H150.227ZM208.899 209.23H212.133V145.293H208.899ZM267.567 209.23H270.805V152.117H267.567ZM326.234 209.23H329.473V140.973H326.234ZM384.902 209.23H388.141V154.562H384.902Z' fill='#bf8080' clip-path='url(#clip3)'/>
<path d='M91.559 209.23H94.797V146.23H91.559ZM150.227 209.23H153.465V146.547H150.227ZM208.899 209.23H212.133V145.293H208.899ZM267.567 209.23H270.805V152.117H267.567ZM326.234 209.23H329.473V140.973H326.234ZM384.902 209.23H388.141V154.562H384.902Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M93.18 146.23V146.168' fill='#bf8080' clip-path='url(#clip3)'/>
<path d='M93.18 146.23V146.168' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M91.184 146.168H95.168' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M93.18 146.23V146.297' fill='#bf8080' clip-path='url(#clip3)'/>
<path d='M93.18 146.23V146.297' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M95.172 146.297H91.187' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M151.848 146.547V146.297' fill='#bf8080' clip-path='url(#clip3)'/>
<path d='M151.848 146.547V146.297' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M149.855 146.297H153.84' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M151.848 146.547V146.797' fill='#bf8080' clip-path='url(#clip3)'/>
<path d='M151.848 146.547V146.797' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M153.84 146.797H149.855' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M210.516 145.293V145.105' fill='#bf8080' clip-path='url(#clip3)'/>
<path d='M210.516 145.293V145.105' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M208.523 145.105H212.507' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M210.516 145.293V145.48' fill='#bf8080' clip-path='url(#clip3)'/>
<path d='M210.516 145.293V145.48' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M212.508 145.481H208.523' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M269.184 152.117V151.555' fill='#bf8080' clip-path='url(#clip3)'/>
<path d='M269.184 152.117V151.555' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M267.191 151.554H271.175' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M269.184 152.117V152.684' fill='#bf8080' clip-path='url(#clip3)'/>
<path d='M269.184 152.117V152.684' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M271.179 152.684H267.191' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M327.856 140.973V137.402' fill='#bf8080' clip-path='url(#clip3)'/>
<path d='M327.856 140.973V137.402' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M325.859 137.403H329.847' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M327.856 140.973V144.543' fill='#bf8080' clip-path='url(#clip3)'/>
<path d='M327.856 140.973V144.543' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M329.847 144.543H325.863' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M386.524 154.562V147.734' fill='#bf8080' clip-path='url(#clip3)'/>
<path d='M386.524 154.562V147.734' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M384.531 147.734H388.515' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M386.524 154.562V161.387' fill='#bf8080' clip-path='url(#clip3)'/>
<path d='M386.524 154.562V161.387' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M388.515 161.387H384.531' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M96.789 209.23H100.027V145.293H96.789ZM155.457 209.23H158.695V143.101H155.457ZM214.129 209.23H217.363V144.668H214.129ZM272.797 209.23H276.035V141.973H272.797ZM331.465 209.23H334.703V143.101H331.465ZM390.133 209.23H393.371V83.984H390.133Z' fill='#8080bf' clip-path='url(#clip3)'/>
<path d='M96.789 209.23H100.027V145.293H96.789ZM155.457 209.23H158.695V143.101H155.457ZM214.129 209.23H217.363V144.668H214.129ZM272.797 209.23H276.035V141.973H272.797ZM331.465 209.23H334.703V143.101H331.465ZM390.133 209.23H393.371V83.984H390.133Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M98.41 145.293V145.23' fill='#8080bf' clip-path='url(#clip3)'/>
<path d='M98.41 145.293V145.23' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M96.414 145.23H100.399' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M98.41 145.293V145.355' fill='#8080bf' clip-path='url(#clip3)'/>
<path d='M98.41 145.293V145.355' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M100.402 145.356H96.418' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M157.078 143.101V142.601' fill='#8080bf' clip-path='url(#clip3)'/>
<path d='M157.078 143.101V142.601' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M155.086 142.601H159.071' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M157.078 143.101V143.601' fill='#8080bf' clip-path='url(#clip3)'/>
<path d='M157.078 143.101V143.601' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M159.071 143.601H155.086' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M215.746 144.668V144.543' fill='#8080bf' clip-path='url(#clip3)'/>
<path d='M215.746 144.668V144.543' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M213.754 144.543H217.738' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M215.746 144.668V144.793' fill='#8080bf' clip-path='url(#clip3)'/>
<path d='M215.746 144.668V144.793' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M217.739 144.793H213.754' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M274.414 141.973V141.535' fill='#8080bf' clip-path='url(#clip3)'/>
<path d='M274.414 141.973V141.535' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M272.422 141.536H276.406' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M274.414 141.973V142.414' fill='#8080bf' clip-path='url(#clip3)'/>
<path d='M274.414 141.973V142.414' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M276.41 142.414H272.422' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M333.086 143.101V141.66' fill='#8080bf' clip-path='url(#clip3)'/>
<path d='M333.086 143.101V141.66' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M331.09 141.66H335.078' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M333.086 143.101V144.543' fill='#8080bf' clip-path='url(#clip3)'/>
<path d='M333.086 143.101V144.543' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M335.078 144.543H331.094' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M391.754 83.984' fill='#8080bf' clip-path='url(#clip3)'/>
<path d='M389.762 83.984H393.746' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M391.754 83.984' fill='#8080bf' clip-path='url(#clip3)'/>
<path d='M389.762 83.984H393.746' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M102.02 209.23H105.258V143.289H102.02ZM160.688 209.23H163.926V146.484H160.688ZM219.359 209.23H222.594V134.711H219.359ZM278.027 209.23H281.266V139.531H278.027ZM336.695 209.23H339.934V83.984H336.695ZM395.363 209.23H398.602V128.008H395.363Z' fill='#ffb733' clip-path='url(#clip3)'/>
<path d='M102.02 209.23H105.258V143.289H102.02ZM160.688 209.23H163.926V146.484H160.688ZM219.359 209.23H222.594V134.711H219.359ZM278.027 209.23H281.266V139.531H278.027ZM336.695 209.23H339.934V83.984H336.695ZM395.363 209.23H398.602V128.008H395.363Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M103.641 143.289' fill='#ffb733' clip-path='url(#clip3)'/>
<path d='M101.644 143.289H105.629' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M103.641 143.289' fill='#ffb733' clip-path='url(#clip3)'/>
<path d='M101.644 143.289H105.629' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M162.309 146.484V146.168' fill='#ffb733' clip-path='url(#clip3)'/>
<path d='M162.309 146.484V146.168' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M160.316 146.168H164.301' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M162.309 146.484V146.797' fill='#ffb733' clip-path='url(#clip3)'/>
<path d='M162.309 146.484V146.797' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M164.301 146.797H160.316' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M220.977 134.711V134.523' fill='#ffb733' clip-path='url(#clip3)'/>
<path d='M220.977 134.711V134.523' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M218.984 134.524H222.969' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M220.977 134.711V134.898' fill='#ffb733' clip-path='url(#clip3)'/>
<path d='M220.977 134.711V134.898' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M222.969 134.899H218.984' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M279.645 139.531V139.469' fill='#ffb733' clip-path='url(#clip3)'/>
<path d='M279.645 139.531V139.469' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M277.652 139.469H281.636' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M279.645 139.531V139.594' fill='#ffb733' clip-path='url(#clip3)'/>
<path d='M279.645 139.531V139.594' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M281.64 139.593H277.652' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M338.317 83.984' fill='#ffb733' clip-path='url(#clip3)'/>
<path d='M336.32 83.984H340.308' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M338.317 83.984' fill='#ffb733' clip-path='url(#clip3)'/>
<path d='M336.32 83.984H340.308' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M396.984 128.008V115.859' fill='#ffb733' clip-path='url(#clip3)'/>
<path d='M396.984 128.008V115.859' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M394.992 115.859H398.976' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M396.984 128.008V140.156' fill='#ffb733' clip-path='url(#clip3)'/>
<path d='M396.984 128.008V140.156' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M398.976 140.156H394.992' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M107.25 209.23H110.488V127.82H107.25ZM165.918 209.23H169.156V145.105H165.918ZM224.59 209.23H227.824V112.98H224.59ZM283.258 209.23H286.496V115.109H283.258ZM341.926 209.23H345.164V103.961H341.926ZM400.594 209.23H403.832V136.715H400.594Z' fill='#bf80bf' clip-path='url(#clip3)'/>
<path d='M107.25 209.23H110.488V127.82H107.25ZM165.918 209.23H169.156V145.105H165.918ZM224.59 209.23H227.824V112.98H224.59ZM283.258 209.23H286.496V115.109H283.258ZM341.926 209.23H345.164V103.961H341.926ZM400.594 209.23H403.832V136.715H400.594Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M108.871 127.82V127.758' fill='#bf80bf' clip-path='url(#clip3)'/>
<path d='M108.871 127.82V127.758' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M106.875 127.758H110.86' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M108.871 127.82V127.883' fill='#bf80bf' clip-path='url(#clip3)'/>
<path d='M108.871 127.82V127.883' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M110.864 127.883H106.879' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M167.539 145.105V144.668' fill='#bf80bf' clip-path='url(#clip3)'/>
<path d='M167.539 145.105V144.668' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M165.547 144.668H169.532' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M167.539 145.105V145.543' fill='#bf80bf' clip-path='url(#clip3)'/>
<path d='M167.539 145.105V145.543' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M169.532 145.543H165.547' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M226.207 112.98V112.73' fill='#bf80bf' clip-path='url(#clip3)'/>
<path d='M226.207 112.98V112.73' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M224.215 112.73H228.2' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M226.207 112.98V113.23' fill='#bf80bf' clip-path='url(#clip3)'/>
<path d='M226.207 112.98V113.23' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M228.2 113.23H224.215' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M284.875 115.109V113.605' fill='#bf80bf' clip-path='url(#clip3)'/>
<path d='M284.875 115.109V113.605' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M282.883 113.606H286.868' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M284.875 115.109V116.613' fill='#bf80bf' clip-path='url(#clip3)'/>
<path d='M284.875 115.109V116.613' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M286.868 116.614H282.883' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M343.547 103.961V102.961' fill='#bf80bf' clip-path='url(#clip3)'/>
<path d='M343.547 103.961V102.961' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M341.551 102.961H345.539' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M343.547 103.961V104.965' fill='#bf80bf' clip-path='url(#clip3)'/>
<path d='M343.547 103.961V104.965' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M345.539 104.965H341.555' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M402.215 136.715V130.137' fill='#bf80bf' clip-path='url(#clip3)'/>
<path d='M402.215 136.715V130.137' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M400.223 130.136H404.207' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M402.215 136.715V143.289' fill='#bf80bf' clip-path='url(#clip3)'/>
<path d='M402.215 136.715V143.289' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M404.207 143.289H400.223' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M112.481 209.23H115.719V144.918H112.481ZM171.149 209.23H174.387V147.984H171.149ZM229.82 209.23H233.055V134.461H229.82ZM288.488 209.23H291.727V147.734H288.488ZM347.156 209.23H350.395V83.984H347.156ZM405.824 209.23H409.063V123.562H405.824Z' fill='#c96' clip-path='url(#clip3)'/>
<path d='M112.481 209.23H115.719V144.918H112.481ZM171.149 209.23H174.387V147.984H171.149ZM229.82 209.23H233.055V134.461H229.82ZM288.488 209.23H291.727V147.734H288.488ZM347.156 209.23H350.395V83.984H347.156ZM405.824 209.23H409.063V123.562H405.824Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M114.098 144.918V144.855' fill='#c96' clip-path='url(#clip3)'/>
<path d='M114.098 144.918V144.855' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M112.105 144.856H116.09' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M114.098 144.918V144.98' fill='#c96' clip-path='url(#clip3)'/>
<path d='M114.098 144.918V144.98' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M116.094 144.981H112.109' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M172.77 147.984V147.359' fill='#c96' clip-path='url(#clip3)'/>
<path d='M172.77 147.984V147.359' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M170.777 147.36H174.762' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M172.77 147.984V148.613' fill='#c96' clip-path='url(#clip3)'/>
<path d='M172.77 147.984V148.613' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M174.762 148.613H170.777' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M231.438 134.461V134.336' fill='#c96' clip-path='url(#clip3)'/>
<path d='M231.438 134.461V134.336' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M229.445 134.336H233.43' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M231.438 134.461V134.586' fill='#c96' clip-path='url(#clip3)'/>
<path d='M231.438 134.461V134.586' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M233.43 134.586H229.445' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M290.106 147.734V146.297' fill='#c96' clip-path='url(#clip3)'/>
<path d='M290.106 147.734V146.297' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M288.113 146.297H292.098' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M290.106 147.734V149.176' fill='#c96' clip-path='url(#clip3)'/>
<path d='M290.106 147.734V149.176' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M292.098 149.176H288.113' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M348.777 83.984' fill='#c96' clip-path='url(#clip3)'/>
<path d='M346.781 83.984H350.769' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M348.777 83.984' fill='#c96' clip-path='url(#clip3)'/>
<path d='M346.781 83.984H350.769' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M407.445 123.562V105.965' fill='#c96' clip-path='url(#clip3)'/>
<path d='M407.445 123.562V105.965' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M405.453 105.965H409.437' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M407.445 123.562V141.16' fill='#c96' clip-path='url(#clip3)'/>
<path d='M407.445 123.562V141.16' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M409.437 141.16H405.453' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M117.711 209.23H120.949V143.601H117.711ZM176.379 209.23H179.617V139.781H176.379ZM235.051 209.23H238.285V126.57H235.051ZM293.719 209.23H296.957V83.984H293.719ZM352.387 209.23H355.625V83.984H352.387ZM411.055 209.23H414.293V83.984H411.055Z' fill='#80bf80' clip-path='url(#clip3)'/>
<path d='M117.711 209.23H120.949V143.601H117.711ZM176.379 209.23H179.617V139.781H176.379ZM235.051 209.23H238.285V126.57H235.051ZM293.719 209.23H296.957V83.984H293.719ZM352.387 209.23H355.625V83.984H352.387ZM411.055 209.23H414.293V83.984H411.055Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M119.328 143.601V143.539' fill='#80bf80' clip-path='url(#clip3)'/>
<path d='M119.328 143.601V143.539' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M117.336 143.539H121.321' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M119.328 143.601V143.664' fill='#80bf80' clip-path='url(#clip3)'/>
<path d='M119.328 143.601V143.664' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M121.325 143.664H117.34' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M178 139.781V139.469' fill='#80bf80' clip-path='url(#clip3)'/>
<path d='M178 139.781V139.469' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M176.008 139.469H179.993' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M178 139.781V140.094' fill='#80bf80' clip-path='url(#clip3)'/>
<path d='M178 139.781V140.094' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M179.993 140.093H176.008' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M236.668 126.57V126.445' fill='#80bf80' clip-path='url(#clip3)'/>
<path d='M236.668 126.57V126.445' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M234.676 126.446H238.661' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M236.668 126.57V126.695' fill='#80bf80' clip-path='url(#clip3)'/>
<path d='M236.668 126.57V126.695' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M238.66 126.695H234.675' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M295.336 83.984' fill='#80bf80' clip-path='url(#clip3)'/>
<path d='M293.344 83.984H297.329' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M295.336 83.984' fill='#80bf80' clip-path='url(#clip3)'/>
<path d='M293.344 83.984H297.329' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M354.008 83.984' fill='#80bf80' clip-path='url(#clip3)'/>
<path d='M352.012 83.984H356' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M354.008 83.984' fill='#80bf80' clip-path='url(#clip3)'/>
<path d='M352.012 83.984H356' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M412.676 83.984' fill='#80bf80' clip-path='url(#clip3)'/>
<path d='M410.684 83.984H414.668' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M412.676 83.984' fill='#80bf80' clip-path='url(#clip3)'/>
<path d='M410.684 83.984H414.668' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M122.941 209.23H126.18V140.094H122.941ZM181.609 209.23H184.848V131.141H181.609ZM240.281 209.23H243.516V136.902H240.281ZM298.949 209.23H302.188V83.984H298.949ZM357.617 209.23H360.856V83.984H357.617ZM416.285 209.23H419.524V83.984H416.285Z' fill='#bfbf80' clip-path='url(#clip3)'/>
<path d='M122.941 209.23H126.18V140.094H122.941ZM181.609 209.23H184.848V131.141H181.609ZM240.281 209.23H243.516V136.902H240.281ZM298.949 209.23H302.188V83.984H298.949ZM357.617 209.23H360.856V83.984H357.617ZM416.285 209.23H419.524V83.984H416.285Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M124.559 140.094V140.031' fill='#bfbf80' clip-path='url(#clip3)'/>
<path d='M124.559 140.094V140.031' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M122.566 140.032H126.551' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M124.559 140.094V140.156' fill='#bfbf80' clip-path='url(#clip3)'/>
<path d='M124.559 140.094V140.156' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M126.555 140.156H122.57' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M183.231 131.141V130.703' fill='#bfbf80' clip-path='url(#clip3)'/>
<path d='M183.231 131.141V130.703' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M181.238 130.703H185.223' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M183.231 131.141V131.578' fill='#bfbf80' clip-path='url(#clip3)'/>
<path d='M183.231 131.141V131.578' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M185.223 131.579H181.238' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M241.899 136.902V136.652' fill='#bfbf80' clip-path='url(#clip3)'/>
<path d='M241.899 136.902V136.652' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M239.906 136.652H243.891' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M241.899 136.902V137.152' fill='#bfbf80' clip-path='url(#clip3)'/>
<path d='M241.899 136.902V137.152' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M243.891 137.152H239.906' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M300.567 83.984' fill='#bfbf80' clip-path='url(#clip3)'/>
<path d='M298.574 83.984H302.559' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M300.567 83.984' fill='#bfbf80' clip-path='url(#clip3)'/>
<path d='M298.574 83.984H302.559' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M359.238 83.984' fill='#bfbf80' clip-path='url(#clip3)'/>
<path d='M357.242 83.984H361.23' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M359.238 83.984' fill='#bfbf80' clip-path='url(#clip3)'/>
<path d='M357.242 83.984H361.23' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M417.906 83.984' fill='#bfbf80' clip-path='url(#clip3)'/>
<path d='M415.914 83.984H419.898' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M417.906 83.984' fill='#bfbf80' clip-path='url(#clip3)'/>
<path d='M415.914 83.984H419.898' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M128.172 209.23H131.41V141.348H128.172ZM186.84 209.23H190.078V135.273H186.84ZM245.512 209.23H248.746V138.344H245.512ZM304.18 209.23H307.418V113.73H304.18ZM362.848 209.23H366.086V83.984H362.848ZM421.516 209.23H424.754V127.195H421.516Z' fill='#399' clip-path='url(#clip3)'/>
<path d='M128.172 209.23H131.41V141.348H128.172ZM186.84 209.23H190.078V135.273H186.84ZM245.512 209.23H248.746V138.344H245.512ZM304.18 209.23H307.418V113.73H304.18ZM362.848 209.23H366.086V83.984H362.848ZM421.516 209.23H424.754V127.195H421.516Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M129.789 141.348V141.285' fill='#399' clip-path='url(#clip3)'/>
<path d='M129.789 141.348V141.285' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M127.797 141.285H131.782' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M129.789 141.348V141.41' fill='#399' clip-path='url(#clip3)'/>
<path d='M129.789 141.348V141.41' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M131.785 141.41H127.8' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M188.461 135.273V134.711' fill='#399' clip-path='url(#clip3)'/>
<path d='M188.461 135.273V134.711' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M186.469 134.711H190.454' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M188.461 135.273V135.836' fill='#399' clip-path='url(#clip3)'/>
<path d='M188.461 135.273V135.836' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M190.453 135.836H186.468' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M247.129 138.344V138.09' fill='#399' clip-path='url(#clip3)'/>
<path d='M247.129 138.344V138.09' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M245.137 138.089H249.122' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M247.129 138.344V138.594' fill='#399' clip-path='url(#clip3)'/>
<path d='M247.129 138.344V138.594' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M249.121 138.593H245.136' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M305.797 113.73V112.855' fill='#399' clip-path='url(#clip3)'/>
<path d='M305.797 113.73V112.855' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M303.804 112.855H307.789' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M305.797 113.73V114.609' fill='#399' clip-path='url(#clip3)'/>
<path d='M305.797 113.73V114.609' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M307.789 114.61H303.804' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M364.469 83.984' fill='#399' clip-path='url(#clip3)'/>
<path d='M362.473 83.984H366.461' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M364.469 83.984' fill='#399' clip-path='url(#clip3)'/>
<path d='M362.473 83.984H366.461' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M423.137 127.195V122.246' fill='#399' clip-path='url(#clip3)'/>
<path d='M423.137 127.195V122.246' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M421.144 122.246H425.128' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M423.137 127.195V132.141' fill='#399' clip-path='url(#clip3)'/>
<path d='M423.137 127.195V132.141' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M425.129 132.14H421.144' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M133.402 209.23H136.641V140.91H133.402ZM192.07 209.23H195.309V145.98H192.07ZM250.742 209.23H253.977V141.098H250.742ZM309.41 209.23H312.649V124.816H309.41ZM368.078 209.23H371.317V83.984H368.078ZM426.746 209.23H429.984V123.937H426.746Z' fill='#d9b3b3' clip-path='url(#clip3)'/>
<path d='M133.402 209.23H136.641V140.91H133.402ZM192.07 209.23H195.309V145.98H192.07ZM250.742 209.23H253.977V141.098H250.742ZM309.41 209.23H312.649V124.816H309.41ZM368.078 209.23H371.317V83.984H368.078ZM426.746 209.23H429.984V123.937H426.746Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M135.02 140.91V140.848' fill='#d9b3b3' clip-path='url(#clip3)'/>
<path d='M135.02 140.91V140.848' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M133.027 140.848H137.012' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M135.02 140.91V140.973' fill='#d9b3b3' clip-path='url(#clip3)'/>
<path d='M135.02 140.91V140.973' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M137.016 140.973H133.031' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M193.692 145.98V144.918' fill='#d9b3b3' clip-path='url(#clip3)'/>
<path d='M193.692 145.98V144.918' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M191.699 144.918H195.684' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M193.692 145.98V147.047' fill='#d9b3b3' clip-path='url(#clip3)'/>
<path d='M193.692 145.98V147.047' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M195.684 147.046H191.699' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M252.359 141.098V140.973' fill='#d9b3b3' clip-path='url(#clip3)'/>
<path d='M252.359 141.098V140.973' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M250.367 140.973H254.352' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M252.359 141.098V141.223' fill='#d9b3b3' clip-path='url(#clip3)'/>
<path d='M252.359 141.098V141.223' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M254.352 141.223H250.367' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M311.027 124.816V123.937' fill='#d9b3b3' clip-path='url(#clip3)'/>
<path d='M311.027 124.816V123.937' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M309.035 123.938H313.02' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M311.027 124.816V125.691' fill='#d9b3b3' clip-path='url(#clip3)'/>
<path d='M311.027 124.816V125.691' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M313.02 125.691H309.035' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M369.699 83.984' fill='#d9b3b3' clip-path='url(#clip3)'/>
<path d='M367.703 83.984H371.691' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M369.699 83.984' fill='#d9b3b3' clip-path='url(#clip3)'/>
<path d='M367.703 83.984H371.691' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M428.367 123.937V119.867' fill='#d9b3b3' clip-path='url(#clip3)'/>
<path d='M428.367 123.937V119.867' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M426.375 119.867H430.359' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M428.367 123.937V128.008' fill='#d9b3b3' clip-path='url(#clip3)'/>
<path d='M428.367 123.937V128.008' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<path d='M430.36 128.008H426.375' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip3)'/>
<g transform='matrix(0 -1 1 0 -99.092 255.07)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 -40.423 255.07)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 18.246 255.07)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 76.915 255.07)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 135.584 255.07)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 194.253 255.07)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 -93.862 254.695)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-49'/>
</g>
<g transform='matrix(0 -1 1 0 -35.193 255.008)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 23.476 253.755)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-50'/>
</g>
<g transform='matrix(0 -1 1 0 82.145 260.581)'>
<use x='114.487' y='188.674' xlink:href='#g2-48'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-57'/>
<use x='121.25' y='188.674' xlink:href='#g2-49'/>
</g>
<g transform='matrix(0 -1 1 0 140.814 249.434)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-57'/>
</g>
<g transform='matrix(0 -1 1 0 199.483 263.023)'>
<use x='114.487' y='188.674' xlink:href='#g2-48'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-56'/>
<use x='121.25' y='188.674' xlink:href='#g2-55'/>
</g>
<g transform='matrix(0 -1 1 0 -88.631 253.755)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-50'/>
</g>
<g transform='matrix(0 -1 1 0 -29.962 251.563)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-54'/>
</g>
<g transform='matrix(0 -1 1 0 28.707 253.129)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-51'/>
</g>
<g transform='matrix(0 -1 1 0 87.376 250.436)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-55'/>
</g>
<g transform='matrix(0 -1 1 0 146.045 251.563)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-54'/>
</g>
<g transform='matrix(0 -1 1 0 204.714 192.447)'>
<use x='109.598' y='188.674' xlink:href='#g4-1'/>
<use x='113.103' y='188.674' xlink:href='#g4-1'/>
<use x='116.608' y='188.674' xlink:href='#g4-1'/>
<use x='120.114' y='188.674' xlink:href='#g2-50'/>
<use x='122.76' y='188.674' xlink:href='#g2-46'/>
<use x='124.23' y='188.674' xlink:href='#g2-51'/>
<use x='126.877' y='188.674' xlink:href='#g2-50'/>
<use x='129.523' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 -83.401 251.751)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-53'/>
</g>
<g transform='matrix(0 -1 1 0 -24.732 254.945)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 33.937 243.172)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-49'/>
<use x='121.25' y='188.674' xlink:href='#g2-57'/>
</g>
<g transform='matrix(0 -1 1 0 92.606 247.994)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-49'/>
<use x='121.25' y='188.674' xlink:href='#g2-49'/>
</g>
<g transform='matrix(0 -1 1 0 151.275 192.447)'>
<use x='109.598' y='188.674' xlink:href='#g4-1'/>
<use x='113.103' y='188.674' xlink:href='#g4-1'/>
<use x='116.608' y='188.674' xlink:href='#g4-1'/>
<use x='120.114' y='188.674' xlink:href='#g2-50'/>
<use x='122.76' y='188.674' xlink:href='#g2-46'/>
<use x='124.23' y='188.674' xlink:href='#g2-52'/>
<use x='126.877' y='188.674' xlink:href='#g2-55'/>
<use x='129.523' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 209.944 236.471)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-51'/>
<use x='121.25' y='188.674' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 -78.17 236.283)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-51'/>
<use x='121.25' y='188.674' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 -19.501 253.567)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-50'/>
</g>
<g transform='matrix(0 -1 1 0 39.168 221.442)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-53'/>
<use x='121.25' y='188.674' xlink:href='#g2-52'/>
</g>
<g transform='matrix(0 -1 1 0 97.837 223.571)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-53'/>
<use x='121.25' y='188.674' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 156.506 212.424)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-54'/>
<use x='121.25' y='188.674' xlink:href='#g2-56'/>
</g>
<g transform='matrix(0 -1 1 0 215.175 245.176)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-49'/>
<use x='121.25' y='188.674' xlink:href='#g2-54'/>
</g>
<g transform='matrix(0 -1 1 0 -72.94 253.38)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-51'/>
</g>
<g transform='matrix(0 -1 1 0 -14.271 256.448)'>
<use x='114.487' y='188.674' xlink:href='#g2-48'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-57'/>
<use x='121.25' y='188.674' xlink:href='#g2-56'/>
</g>
<g transform='matrix(0 -1 1 0 44.398 242.922)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-49'/>
<use x='121.25' y='188.674' xlink:href='#g2-57'/>
</g>
<g transform='matrix(0 -1 1 0 103.067 256.198)'>
<use x='114.487' y='188.674' xlink:href='#g2-48'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-57'/>
<use x='121.25' y='188.674' xlink:href='#g2-56'/>
</g>
<g transform='matrix(0 -1 1 0 161.736 192.447)'>
<use x='109.598' y='188.674' xlink:href='#g4-1'/>
<use x='113.103' y='188.674' xlink:href='#g4-1'/>
<use x='116.608' y='188.674' xlink:href='#g4-1'/>
<use x='120.114' y='188.674' xlink:href='#g2-50'/>
<use x='122.76' y='188.674' xlink:href='#g2-46'/>
<use x='124.23' y='188.674' xlink:href='#g2-50'/>
<use x='126.877' y='188.674' xlink:href='#g2-51'/>
<use x='129.523' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 220.405 232.025)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-51'/>
<use x='121.25' y='188.674' xlink:href='#g2-55'/>
</g>
<g transform='matrix(0 -1 1 0 -67.709 252.064)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-53'/>
</g>
<g transform='matrix(0 -1 1 0 -9.04 248.244)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-49'/>
<use x='121.25' y='188.674' xlink:href='#g2-49'/>
</g>
<g transform='matrix(0 -1 1 0 49.629 235.031)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-51'/>
<use x='121.25' y='188.674' xlink:href='#g2-50'/>
</g>
<g transform='matrix(0 -1 1 0 108.298 192.447)'>
<use x='109.598' y='188.674' xlink:href='#g4-1'/>
<use x='113.103' y='188.674' xlink:href='#g4-1'/>
<use x='116.608' y='188.674' xlink:href='#g4-1'/>
<use x='120.114' y='188.674' xlink:href='#g2-50'/>
<use x='122.76' y='188.674' xlink:href='#g2-46'/>
<use x='124.23' y='188.674' xlink:href='#g2-53'/>
<use x='126.877' y='188.674' xlink:href='#g2-54'/>
<use x='129.523' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 166.967 192.447)'>
<use x='109.598' y='188.674' xlink:href='#g4-1'/>
<use x='113.103' y='188.674' xlink:href='#g4-1'/>
<use x='116.608' y='188.674' xlink:href='#g4-1'/>
<use x='120.114' y='188.674' xlink:href='#g2-49'/>
<use x='122.76' y='188.674' xlink:href='#g2-48'/>
<use x='125.406' y='188.674' xlink:href='#g2-46'/>
<use x='126.877' y='188.674' xlink:href='#g2-51'/>
<use x='129.523' y='188.674' xlink:href='#g2-50'/>
<use x='132.169' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 225.636 192.447)'>
<use x='109.598' y='188.674' xlink:href='#g4-1'/>
<use x='113.103' y='188.674' xlink:href='#g4-1'/>
<use x='116.608' y='188.674' xlink:href='#g4-1'/>
<use x='120.114' y='188.674' xlink:href='#g2-51'/>
<use x='122.76' y='188.674' xlink:href='#g2-46'/>
<use x='124.23' y='188.674' xlink:href='#g2-48'/>
<use x='126.877' y='188.674' xlink:href='#g2-56'/>
<use x='129.523' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 -62.479 248.558)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-49'/>
<use x='121.25' y='188.674' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 -3.81 239.602)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-50'/>
<use x='121.25' y='188.674' xlink:href='#g2-53'/>
</g>
<g transform='matrix(0 -1 1 0 54.859 245.364)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-49'/>
<use x='121.25' y='188.674' xlink:href='#g2-53'/>
</g>
<g transform='matrix(0 -1 1 0 113.528 192.447)'>
<use x='109.598' y='188.674' xlink:href='#g4-1'/>
<use x='113.103' y='188.674' xlink:href='#g4-1'/>
<use x='116.608' y='188.674' xlink:href='#g4-1'/>
<use x='120.114' y='188.674' xlink:href='#g2-50'/>
<use x='122.76' y='188.674' xlink:href='#g2-55'/>
<use x='125.406' y='188.674' xlink:href='#g2-51'/>
<use x='128.053' y='188.674' xlink:href='#g2-46'/>
<use x='129.523' y='188.674' xlink:href='#g2-52'/>
<use x='132.169' y='188.674' xlink:href='#g2-53'/>
<use x='134.816' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 172.197 192.447)'>
<use x='109.598' y='188.674' xlink:href='#g4-1'/>
<use x='113.103' y='188.674' xlink:href='#g4-1'/>
<use x='116.608' y='188.674' xlink:href='#g4-1'/>
<use x='120.114' y='188.674' xlink:href='#g2-54'/>
<use x='122.76' y='188.674' xlink:href='#g2-46'/>
<use x='124.23' y='188.674' xlink:href='#g2-48'/>
<use x='126.877' y='188.674' xlink:href='#g2-54'/>
<use x='129.523' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 230.866 192.447)'>
<use x='109.598' y='188.674' xlink:href='#g4-1'/>
<use x='113.103' y='188.674' xlink:href='#g4-1'/>
<use x='116.608' y='188.674' xlink:href='#g4-1'/>
<use x='120.114' y='188.674' xlink:href='#g2-50'/>
<use x='122.76' y='188.674' xlink:href='#g2-46'/>
<use x='124.23' y='188.674' xlink:href='#g2-50'/>
<use x='126.877' y='188.674' xlink:href='#g2-52'/>
<use x='129.523' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 -57.249 249.81)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-56'/>
</g>
<g transform='matrix(0 -1 1 0 1.42 243.736)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-49'/>
<use x='121.25' y='188.674' xlink:href='#g2-56'/>
</g>
<g transform='matrix(0 -1 1 0 60.089 246.804)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-49'/>
<use x='121.25' y='188.674' xlink:href='#g2-51'/>
</g>
<g transform='matrix(0 -1 1 0 118.758 222.193)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-53'/>
<use x='121.25' y='188.674' xlink:href='#g2-51'/>
</g>
<g transform='matrix(0 -1 1 0 177.427 192.447)'>
<use x='109.598' y='188.674' xlink:href='#g4-1'/>
<use x='113.103' y='188.674' xlink:href='#g4-1'/>
<use x='116.608' y='188.674' xlink:href='#g4-1'/>
<use x='120.114' y='188.674' xlink:href='#g2-50'/>
<use x='122.76' y='188.674' xlink:href='#g2-46'/>
<use x='124.23' y='188.674' xlink:href='#g2-52'/>
<use x='126.877' y='188.674' xlink:href='#g2-56'/>
<use x='129.523' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 236.096 235.657)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-51'/>
<use x='121.25' y='188.674' xlink:href='#g2-49'/>
</g>
<g transform='matrix(0 -1 1 0 -52.018 249.372)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-57'/>
</g>
<g transform='matrix(0 -1 1 0 6.651 254.444)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-49'/>
</g>
<g transform='matrix(0 -1 1 0 65.32 249.56)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-48'/>
<use x='121.25' y='188.674' xlink:href='#g2-57'/>
</g>
<g transform='matrix(0 -1 1 0 123.989 233.278)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-51'/>
<use x='121.25' y='188.674' xlink:href='#g2-53'/>
</g>
<g transform='matrix(0 -1 1 0 182.658 192.447)'>
<use x='109.598' y='188.674' xlink:href='#g4-1'/>
<use x='113.103' y='188.674' xlink:href='#g4-1'/>
<use x='116.608' y='188.674' xlink:href='#g4-1'/>
<use x='120.114' y='188.674' xlink:href='#g2-50'/>
<use x='122.76' y='188.674' xlink:href='#g2-46'/>
<use x='124.23' y='188.674' xlink:href='#g2-51'/>
<use x='126.877' y='188.674' xlink:href='#g2-49'/>
<use x='129.523' y='188.674' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 241.327 232.401)'>
<use x='114.487' y='188.674' xlink:href='#g2-49'/>
<use x='117.133' y='188.674' xlink:href='#g2-46'/>
<use x='118.603' y='188.674' xlink:href='#g2-51'/>
<use x='121.25' y='188.674' xlink:href='#g2-54'/>
</g>
<g transform='matrix(0 -1 1 0 -129.314 316.355)'>
<use x='114.487' y='188.674' xlink:href='#g1-82'/>
<use x='120.457' y='188.674' xlink:href='#g1-101'/>
<use x='124.553' y='188.674' xlink:href='#g1-108'/>
<use x='126.753' y='188.674' xlink:href='#g1-97'/>
<use x='131.181' y='188.674' xlink:href='#g1-116'/>
<use x='134.509' y='188.674' xlink:href='#g1-105'/>
<use x='136.709' y='188.674' xlink:href='#g1-118'/>
<use x='140.957' y='188.674' xlink:href='#g1-101'/>
<use x='148.124' y='188.674' xlink:href='#g1-116'/>
<use x='151.452' y='188.674' xlink:href='#g1-105'/>
<use x='153.652' y='188.674' xlink:href='#g1-109'/>
<use x='160.972' y='188.674' xlink:href='#g1-101'/>
<use x='168.139' y='188.674' xlink:href='#g3-40'/>
<use x='171.432' y='188.674' xlink:href='#g3-108'/>
<use x='173.453' y='188.674' xlink:href='#g3-111'/>
<use x='177.452' y='188.674' xlink:href='#g3-119'/>
<use x='183' y='188.674' xlink:href='#g3-101'/>
<use x='186.764' y='188.674' xlink:href='#g3-114'/>
<use x='192.479' y='188.674' xlink:href='#g3-105'/>
<use x='194.499' y='188.674' xlink:href='#g3-115'/>
<use x='200.568' y='188.674' xlink:href='#g3-98'/>
<use x='205.176' y='188.674' xlink:href='#g3-101'/>
<use x='208.94' y='188.674' xlink:href='#g3-116'/>
<use x='211.998' y='188.674' xlink:href='#g3-116'/>
<use x='215.056' y='188.674' xlink:href='#g3-101'/>
<use x='218.819' y='188.674' xlink:href='#g3-114'/>
<use x='221.711' y='188.674' xlink:href='#g3-41'/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 79 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 98 KiB

View File

@ -0,0 +1,836 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- This file was generated by dvisvgm 2.9.1 -->
<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='381.628pt' height='207.789pt' viewBox='52.934 54.993 381.628 207.789'>
<rect width="1000%" height="1000%" fill="white"/>
<defs>
<clipPath id='clip1'>
<path d='M82.148 246.637H434.164V78.871H82.148Z'/>
</clipPath>
<path id='g1-82' d='M3.891-2.914C4.806-3.165 5.452-3.811 5.452-4.546C5.452-5.469 4.411-6.223 3.129-6.223H.87V0H1.704V-2.824H3.138L4.842 0H5.703L3.891-2.914ZM1.704-3.407V-5.694H3.022C4.062-5.694 4.671-5.192 4.671-4.546C4.671-3.963 4.125-3.407 3.022-3.407H1.704Z'/>
<path id='g1-97' d='M3.694-2.591C3.694-3.479 3.04-4.133 2.152-4.133C1.569-4.133 1.139-3.981 .708-3.739L.762-3.102C1.21-3.434 1.65-3.569 2.143-3.569C2.645-3.569 2.95-3.165 2.95-2.582V-2.206C1.408-2.17 .395-1.766 .395-1.04C.395-.619 .672 .099 1.453 .099C1.632 .099 2.412 .081 2.977-.341V0H3.694V-2.591ZM2.95-1.255C2.95-1.067 2.95-.843 2.627-.655C2.403-.52 2.107-.484 1.928-.484C1.47-.484 1.085-.699 1.085-1.058C1.085-1.695 2.833-1.722 2.95-1.722V-1.255Z'/>
<path id='g1-101' d='M3.829-1.964C3.829-2.242 3.82-2.923 3.47-3.461C3.093-4.026 2.52-4.133 2.179-4.133C1.139-4.133 .314-3.174 .314-2.026C.314-.843 1.193 .099 2.313 .099C2.744 .099 3.264-.009 3.784-.341L3.73-.959C3.165-.556 2.636-.484 2.322-.484C1.578-.484 1.004-1.139 .977-1.964H3.829ZM1.031-2.493C1.175-3.067 1.614-3.551 2.179-3.551C2.511-3.551 3.12-3.398 3.291-2.493H1.031Z'/>
<path id='g1-105' d='M1.524-6.133H.664V-5.272H1.524V-6.133ZM1.453-3.981H.735V0H1.453V-3.981Z'/>
<path id='g1-108' d='M1.453-6.223H.735V0H1.453V-6.223Z'/>
<path id='g1-114' d='M1.462-1.91C1.462-2.851 2.197-3.425 3.013-3.434V-4.08C2.367-4.071 1.775-3.748 1.408-3.219V-4.035H.744V0H1.462V-1.91Z'/>
<path id='g1-115' d='M3.165-3.847C2.609-4.098 2.197-4.133 1.829-4.133C1.623-4.133 .305-4.133 .305-2.95C.305-2.52 .565-2.251 .664-2.152C1.004-1.856 1.237-1.811 1.847-1.695C2.134-1.641 2.645-1.542 2.645-1.085C2.645-.502 1.919-.502 1.802-.502C1.273-.502 .762-.681 .377-.95L.26-.296C.798-.009 1.345 .099 1.802 .099C2.385 .099 3.318-.09 3.318-1.157C3.318-1.47 3.192-1.784 2.878-2.053C2.573-2.313 2.304-2.367 1.748-2.475C1.426-2.537 .977-2.618 .977-3.04C.977-3.569 1.614-3.569 1.748-3.569C2.403-3.569 2.789-3.362 3.049-3.219L3.165-3.847Z'/>
<path id='g1-116' d='M1.623-3.425H2.914V-3.981H1.623V-5.12H.959V-3.981H.17V-3.425H.933V-1.13C.933-.601 1.049 .099 1.704 .099C2.098 .099 2.564 .018 3.067-.233L2.914-.798C2.681-.619 2.367-.511 2.089-.511C1.739-.511 1.623-.825 1.623-1.291V-3.425Z'/>
<path id='g1-118' d='M4.116-3.981H3.407L2.699-2.161C2.52-1.695 2.188-.825 2.143-.493H2.125C2.107-.646 2.08-.816 1.587-2.107C1.318-2.833 .879-3.927 .861-3.981H.126L1.704 0H2.537L4.116-3.981Z'/>
<use id='g3-40' xlink:href='#g0-40' transform='scale(1.143)'/>
<use id='g3-41' xlink:href='#g0-41' transform='scale(1.143)'/>
<use id='g3-78' xlink:href='#g0-78' transform='scale(1.143)'/>
<use id='g3-97' xlink:href='#g0-97' transform='scale(1.143)'/>
<use id='g3-98' xlink:href='#g0-98' transform='scale(1.143)'/>
<use id='g3-99' xlink:href='#g0-99' transform='scale(1.143)'/>
<use id='g3-100' xlink:href='#g0-100' transform='scale(1.143)'/>
<use id='g3-101' xlink:href='#g0-101' transform='scale(1.143)'/>
<use id='g3-102' xlink:href='#g0-102' transform='scale(1.143)'/>
<use id='g3-105' xlink:href='#g0-105' transform='scale(1.143)'/>
<use id='g3-108' xlink:href='#g0-108' transform='scale(1.143)'/>
<use id='g3-109' xlink:href='#g0-109' transform='scale(1.143)'/>
<use id='g3-110' xlink:href='#g0-110' transform='scale(1.143)'/>
<use id='g3-111' xlink:href='#g0-111' transform='scale(1.143)'/>
<use id='g3-112' xlink:href='#g0-112' transform='scale(1.143)'/>
<use id='g3-114' xlink:href='#g0-114' transform='scale(1.143)'/>
<use id='g3-115' xlink:href='#g0-115' transform='scale(1.143)'/>
<use id='g3-116' xlink:href='#g0-116' transform='scale(1.143)'/>
<use id='g3-119' xlink:href='#g0-119' transform='scale(1.143)'/>
<path id='g0-40' d='M2.127-5.23C2.008-5.23 1.995-5.23 1.911-5.154C1.032-4.387 .586-3.145 .586-1.743C.586-.425 .983 .844 1.904 1.653C1.995 1.743 2.008 1.743 2.127 1.743H2.462C2.441 1.73 1.764 1.151 1.444 .063C1.276-.481 1.193-1.053 1.193-1.743C1.193-4.156 2.322-5.112 2.462-5.23H2.127Z'/>
<path id='g0-41' d='M.746 1.743C.865 1.743 .879 1.743 .962 1.667C1.841 .9 2.287-.342 2.287-1.743C2.287-3.062 1.89-4.331 .969-5.14C.879-5.23 .865-5.23 .746-5.23H.411C.432-5.216 1.109-4.638 1.43-3.55C1.597-3.006 1.681-2.434 1.681-1.743C1.681 .669 .551 1.625 .411 1.743H.746Z'/>
<path id='g0-46' d='M1.339-.628H.711V0H1.339V-.628Z'/>
<path id='g0-48' d='M3.403-2.267C3.403-2.601 3.403-3.417 3.075-3.989C2.72-4.617 2.183-4.721 1.848-4.721C1.534-4.721 .99-4.624 .642-4.024C.307-3.466 .293-2.706 .293-2.267C.293-1.75 .321-1.116 .614-.586C.921-.021 1.437 .146 1.848 .146C2.545 .146 2.929-.258 3.138-.697C3.382-1.193 3.403-1.834 3.403-2.267ZM1.848-.314C1.555-.314 1.22-.481 1.046-.983C.907-1.409 .9-1.848 .9-2.357C.9-2.999 .9-4.261 1.848-4.261S2.797-2.999 2.797-2.357C2.797-1.897 2.797-1.374 2.629-.928C2.434-.425 2.078-.314 1.848-.314Z'/>
<path id='g0-49' d='M2.239-4.721H2.085C1.632-4.303 1.06-4.275 .642-4.261V-3.822C.914-3.829 1.262-3.843 1.611-3.982V-.439H.683V0H3.166V-.439H2.239V-4.721Z'/>
<path id='g0-50' d='M1.974-.537C1.89-.537 1.806-.53 1.723-.53H.928L2.008-1.485C2.134-1.597 2.476-1.855 2.608-1.967C2.915-2.246 3.327-2.608 3.327-3.215C3.327-4.003 2.741-4.721 1.743-4.721C1.004-4.721 .544-4.324 .307-3.612L.635-3.201C.795-3.787 1.039-4.24 1.646-4.24C2.232-4.24 2.678-3.829 2.678-3.201C2.678-2.622 2.336-2.294 1.918-1.897C1.778-1.757 1.402-1.444 1.255-1.304C1.053-1.123 .572-.656 .37-.481V0H3.327V-.537H1.974Z'/>
<path id='g0-51' d='M.697-3.578C.983-4.135 1.485-4.289 1.82-4.289C2.232-4.289 2.538-4.052 2.538-3.654C2.538-3.285 2.287-2.831 1.757-2.741C1.723-2.734 1.695-2.734 1.234-2.699V-2.239H1.778C2.441-2.239 2.685-1.716 2.685-1.276C2.685-.732 2.35-.314 1.806-.314C1.311-.314 .746-.551 .398-.997L.307-.544C.711-.091 1.276 .146 1.82 .146C2.734 .146 3.389-.537 3.389-1.269C3.389-1.841 2.929-2.301 2.378-2.462C2.908-2.734 3.18-3.201 3.18-3.654C3.18-4.247 2.573-4.721 1.827-4.721C1.213-4.721 .704-4.4 .411-3.982L.697-3.578Z'/>
<path id='g0-52' d='M2.762-1.165H3.487V-1.625H2.762V-4.575H2.071L.209-1.625V-1.165H2.162V0H2.762V-1.165ZM.802-1.625C1.011-1.953 2.211-3.815 2.211-4.233V-1.625H.802Z'/>
<path id='g0-53' d='M1.144-4.094H3.075V-4.575H.586V-1.967H1.095C1.262-2.343 1.59-2.511 1.904-2.511C2.19-2.511 2.622-2.315 2.622-1.43C2.622-.516 2.043-.314 1.688-.314C1.227-.314 .781-.558 .544-.955L.279-.537C.621-.112 1.137 .146 1.688 .146C2.608 .146 3.327-.565 3.327-1.416C3.327-2.28 2.685-2.971 1.918-2.971C1.618-2.971 1.353-2.866 1.144-2.692V-4.094Z'/>
<path id='g0-54' d='M3.062-4.582C2.685-4.721 2.42-4.721 2.287-4.721C1.227-4.721 .307-3.724 .307-2.253C.307-.363 1.158 .146 1.862 .146C2.427 .146 2.72-.119 2.936-.342C3.382-.816 3.389-1.311 3.389-1.555C3.389-2.469 2.894-3.229 2.218-3.229C1.534-3.229 1.165-2.873 .962-2.671C1.053-3.626 1.541-4.289 2.294-4.289C2.434-4.289 2.713-4.275 3.062-4.142V-4.582ZM.969-1.534C.969-1.576 .969-1.681 .976-1.716C.976-2.19 1.276-2.769 1.897-2.769C2.748-2.769 2.748-1.792 2.748-1.555C2.748-1.29 2.748-.997 2.559-.704C2.392-.453 2.183-.314 1.862-.314C1.123-.314 1.004-1.227 .969-1.534Z'/>
<path id='g0-55' d='M1.723-4.038C1.806-4.038 1.89-4.045 1.974-4.045H2.852C1.792-3.006 1.116-1.548 1.116 .07H1.771C1.771-1.967 2.762-3.431 3.389-4.087V-4.575H.307V-4.038H1.723Z'/>
<path id='g0-56' d='M2.385-2.469C2.845-2.615 3.285-2.985 3.285-3.501C3.285-4.135 2.678-4.721 1.848-4.721S.411-4.135 .411-3.501C.411-2.978 .865-2.608 1.311-2.469C.697-2.28 .307-1.806 .307-1.269C.307-.523 .969 .146 1.848 .146S3.389-.523 3.389-1.269C3.389-1.806 2.992-2.28 2.385-2.469ZM1.848-2.699C1.353-2.699 .948-2.985 .948-3.494C.948-3.94 1.262-4.289 1.848-4.289C2.427-4.289 2.748-3.94 2.748-3.494C2.748-2.999 2.357-2.699 1.848-2.699ZM1.848-.314C1.367-.314 .941-.621 .941-1.276C.941-1.904 1.346-2.239 1.848-2.239S2.755-1.897 2.755-1.276C2.755-.621 2.322-.314 1.848-.314Z'/>
<path id='g0-57' d='M.537-.174C.879 .077 1.193 .146 1.52 .146C2.497 .146 3.389-.837 3.389-2.336C3.389-4.24 2.545-4.721 1.876-4.721C1.255-4.721 .969-4.428 .767-4.226C.321-3.773 .307-3.292 .307-3.02C.307-2.12 .795-1.346 1.478-1.346C2.267-1.346 2.699-1.869 2.734-1.911C2.636-.802 2.092-.314 1.52-.314C1.158-.314 .934-.446 .774-.579L.537-.174ZM2.713-3.027C2.72-2.985 2.72-2.915 2.72-2.873C2.72-2.357 2.406-1.806 1.799-1.806C1.534-1.806 1.325-1.883 1.144-2.169C.962-2.441 .948-2.706 .948-3.02C.948-3.292 .948-3.605 1.165-3.912C1.311-4.122 1.52-4.289 1.869-4.289C2.545-4.289 2.692-3.473 2.713-3.027Z'/>
<path id='g0-78' d='M1.646-4.84H.697V0H1.283V-4.289H1.29L3.578 0H4.526V-4.84H3.94V-.551H3.933L1.646-4.84Z'/>
<path id='g0-97' d='M2.971-2.008C2.971-2.72 2.427-3.201 1.736-3.201C1.297-3.201 .962-3.11 .572-2.901L.614-2.392C.844-2.545 1.186-2.755 1.736-2.755C2.043-2.755 2.364-2.525 2.364-2.001V-1.723C1.332-1.688 .314-1.471 .314-.823C.314-.474 .551 .07 1.165 .07C1.465 .07 2.015 .007 2.385-.265V0H2.971V-2.008ZM2.364-.99C2.364-.851 2.364-.669 2.12-.523C1.897-.398 1.625-.391 1.548-.391C1.165-.391 .872-.565 .872-.83C.872-1.276 2.05-1.318 2.364-1.332V-.99Z'/>
<path id='g0-98' d='M1.179-4.84H.593V0H1.2V-.328C1.353-.195 1.688 .07 2.197 .07C2.957 .07 3.571-.642 3.571-1.555C3.571-2.399 3.089-3.166 2.392-3.166C1.953-3.166 1.527-3.027 1.179-2.769V-4.84ZM1.2-2.197C1.2-2.308 1.2-2.392 1.444-2.552C1.548-2.615 1.736-2.706 1.974-2.706C2.441-2.706 2.964-2.392 2.964-1.555C2.964-.704 2.385-.391 1.897-.391C1.639-.391 1.395-.509 1.2-.823V-2.197Z'/>
<path id='g0-99' d='M3.034-.76C2.685-.537 2.308-.411 1.876-.411C1.234-.411 .858-.928 .858-1.555C.858-2.092 1.137-2.72 1.897-2.72C2.371-2.72 2.594-2.622 2.95-2.399L3.041-2.901C2.622-3.11 2.441-3.201 1.897-3.201C.851-3.201 .251-2.357 .251-1.548C.251-.697 .921 .07 1.869 .07C2.357 .07 2.776-.077 3.075-.251L3.034-.76Z'/>
<path id='g0-100' d='M3.229-4.84H2.643V-2.797C2.197-3.124 1.743-3.166 1.541-3.166C.809-3.166 .251-2.434 .251-1.548S.802 .07 1.52 .07C1.953 .07 2.357-.126 2.622-.363V0H3.229V-4.84ZM2.622-.865C2.448-.579 2.183-.391 1.848-.391C1.36-.391 .858-.732 .858-1.541C.858-2.413 1.451-2.706 1.925-2.706C2.204-2.706 2.441-2.587 2.622-2.35V-.865Z'/>
<path id='g0-101' d='M2.999-.76C2.608-.481 2.169-.391 1.869-.391C1.262-.391 .802-.886 .781-1.527H3.068C3.068-1.848 3.034-2.315 2.762-2.713C2.511-3.068 2.092-3.201 1.75-3.201C.9-3.201 .244-2.455 .244-1.569C.244-.676 .941 .07 1.862 .07C2.267 .07 2.685-.049 3.041-.265L2.999-.76ZM.83-1.946C.99-2.504 1.402-2.741 1.75-2.741C2.057-2.741 2.511-2.594 2.643-1.946H.83Z'/>
<path id='g0-102' d='M1.325-2.657H2.12V-3.096H1.304V-3.898C1.304-4.38 1.743-4.449 1.974-4.449C2.12-4.449 2.308-4.428 2.566-4.331V-4.84C2.385-4.882 2.169-4.91 1.981-4.91C1.262-4.91 .739-4.394 .739-3.703V-3.096H.202V-2.657H.739V0H1.325V-2.657Z'/>
<path id='g0-105' d='M1.227-4.784H.523V-4.08H1.227V-4.784ZM1.172-3.096H.586V0H1.172V-3.096Z'/>
<path id='g0-108' d='M1.172-4.84H.586V0H1.172V-4.84Z'/>
<path id='g0-109' d='M5.3-2.064C5.3-2.608 5.14-3.166 4.282-3.166C3.696-3.166 3.333-2.824 3.166-2.601C3.096-2.79 2.922-3.166 2.225-3.166C1.827-3.166 1.444-3.006 1.137-2.636V-3.145H.579V0H1.186V-1.695C1.186-2.155 1.381-2.706 1.918-2.706C2.636-2.706 2.636-2.218 2.636-2.015V0H3.243V-1.695C3.243-2.155 3.438-2.706 3.975-2.706C4.693-2.706 4.693-2.218 4.693-2.015V0H5.3V-2.064Z'/>
<path id='g0-110' d='M3.243-2.064C3.243-2.608 3.082-3.166 2.225-3.166C1.827-3.166 1.444-3.006 1.137-2.636V-3.145H.579V0H1.186V-1.695C1.186-2.155 1.381-2.706 1.918-2.706C2.636-2.706 2.636-2.218 2.636-2.015V0H3.243V-2.064Z'/>
<path id='g0-111' d='M3.487-1.527C3.487-2.448 2.755-3.201 1.848-3.201S.209-2.441 .209-1.527C.209-.642 .948 .07 1.848 .07C2.755 .07 3.487-.642 3.487-1.527ZM1.848-.411C1.297-.411 .816-.816 .816-1.604S1.332-2.741 1.848-2.741C2.371-2.741 2.88-2.378 2.88-1.604C2.88-.809 2.385-.411 1.848-.411Z'/>
<path id='g0-112' d='M1.2-.328C1.569 .007 1.967 .07 2.204 .07C2.943 .07 3.571-.635 3.571-1.555C3.571-2.392 3.11-3.166 2.42-3.166C2.106-3.166 1.583-3.075 1.179-2.762V-3.096H.593V1.353H1.2V-.328ZM1.2-2.315C1.36-2.511 1.632-2.685 1.967-2.685C2.525-2.685 2.964-2.169 2.964-1.555C2.964-.865 2.441-.391 1.897-.391C1.792-.391 1.618-.404 1.437-.551C1.227-.711 1.2-.816 1.2-.948V-2.315Z'/>
<path id='g0-114' d='M1.179-1.485C1.179-2.239 1.806-2.643 2.42-2.65V-3.166C1.834-3.159 1.409-2.873 1.13-2.504V-3.145H.593V0H1.179V-1.485Z'/>
<path id='g0-115' d='M2.545-2.985C2.071-3.18 1.723-3.201 1.471-3.201C1.297-3.201 .244-3.201 .244-2.273C.244-1.946 .425-1.764 .516-1.681C.76-1.437 1.053-1.381 1.423-1.311C1.75-1.248 2.127-1.179 2.127-.844C2.127-.404 1.548-.404 1.451-.404C1.004-.404 .586-.565 .307-.76L.209-.237C.446-.119 .872 .07 1.451 .07C1.764 .07 2.071 .021 2.329-.167C2.587-.363 2.671-.669 2.671-.907C2.671-1.032 2.657-1.304 2.364-1.569C2.106-1.799 1.855-1.848 1.52-1.911C1.109-1.988 .788-2.05 .788-2.357C.788-2.755 1.297-2.755 1.402-2.755C1.799-2.755 2.106-2.671 2.455-2.49L2.545-2.985Z'/>
<path id='g0-116' d='M1.311-2.657H2.343V-3.096H1.311V-3.982H.774V-3.096H.139V-2.657H.753V-.893C.753-.425 .872 .07 1.374 .07S2.26-.091 2.469-.188L2.35-.635C2.12-.467 1.876-.411 1.681-.411C1.388-.411 1.311-.697 1.311-1.018V-2.657Z'/>
<path id='g0-119' d='M4.951-3.096H4.407C4.345-2.901 3.954-1.723 3.738-.997C3.682-.795 3.612-.572 3.592-.411H3.585C3.543-.697 3.299-1.451 3.285-1.499L2.769-3.096H2.239C2.036-2.497 1.513-.934 1.458-.425H1.451C1.395-.921 .879-2.462 .767-2.797C.711-2.964 .711-2.978 .676-3.096H.105L1.123 0H1.709C1.716-.028 1.904-.579 2.148-1.353C2.253-1.695 2.462-2.364 2.497-2.671L2.504-2.678C2.518-2.532 2.559-2.378 2.608-2.204S2.706-1.841 2.755-1.681L3.292 0H3.933L4.951-3.096Z'/>
<path id='g0-120' d='M1.932-1.597L3.285-3.096H2.671L1.681-1.953L.669-3.096H.042L1.437-1.597L0 0H.621L1.681-1.311L2.783 0H3.41L1.932-1.597Z'/>
<path id='g4-1' d='M1.445-1.245C1.445-1.41 1.305-1.549 1.141-1.549S.837-1.41 .837-1.245S.976-.941 1.141-.941S1.445-1.081 1.445-1.245Z'/>
<use id='g2-46' xlink:href='#g0-46' transform='scale(.714)'/>
<use id='g2-48' xlink:href='#g0-48' transform='scale(.714)'/>
<use id='g2-49' xlink:href='#g0-49' transform='scale(.714)'/>
<use id='g2-50' xlink:href='#g0-50' transform='scale(.714)'/>
<use id='g2-51' xlink:href='#g0-51' transform='scale(.714)'/>
<use id='g2-52' xlink:href='#g0-52' transform='scale(.714)'/>
<use id='g2-53' xlink:href='#g0-53' transform='scale(.714)'/>
<use id='g2-54' xlink:href='#g0-54' transform='scale(.714)'/>
<use id='g2-55' xlink:href='#g0-55' transform='scale(.714)'/>
<use id='g2-56' xlink:href='#g0-56' transform='scale(.714)'/>
<use id='g2-57' xlink:href='#g0-57' transform='scale(.714)'/>
<use id='g2-120' xlink:href='#g0-120' transform='scale(.714)'/>
</defs>
<g id='page1'>
<path d='M140.82 255.492V246.637M199.488 255.492V246.637M258.156 255.492V246.637M316.824 255.492V246.637M375.496 255.492V246.637M140.82 70.016V78.871M199.488 70.016V78.871M258.156 70.016V78.871M316.824 70.016V78.871M375.496 70.016V78.871' stroke='#808080' fill='none' stroke-width='.199' stroke-miterlimit='10'/>
<path d='M111.484 250.887V246.637M170.152 250.887V246.637M228.824 250.887V246.637M287.492 250.887V246.637M346.16 250.887V246.637M404.828 250.887V246.637M111.484 74.617V78.871M170.152 74.617V78.871M228.824 74.617V78.871M287.492 74.617V78.871M346.16 74.617V78.871M404.828 74.617V78.871' stroke='#808080' fill='none' stroke-width='.199' stroke-miterlimit='10'/>
<path d='M82.148 246.637H86.402M82.148 213.082H86.402M82.148 179.531H86.402M82.148 145.977H86.402M82.148 112.426H86.402M82.148 78.871H86.402M434.164 246.637H429.91M434.164 213.082H429.91M434.164 179.531H429.91M434.164 145.977H429.91M434.164 112.426H429.91M434.164 78.871H429.91' stroke='#808080' fill='none' stroke-width='.199' stroke-miterlimit='10'/>
<path d='M82.148 246.637V78.871H434.164V246.637H82.148Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10'/>
<g transform='matrix(1 0 0 1 -11.54 34.954)'>
<use x='114.487' y='226.079' xlink:href='#g3-99'/>
<use x='118.25' y='226.079' xlink:href='#g3-102'/>
<use x='120.838' y='226.079' xlink:href='#g3-114'/>
<use x='123.73' y='226.079' xlink:href='#g3-97'/>
<use x='127.798' y='226.079' xlink:href='#g3-99'/>
</g>
<g transform='matrix(1 0 0 1 45.565 34.954)'>
<use x='114.487' y='226.079' xlink:href='#g3-108'/>
<use x='116.507' y='226.079' xlink:href='#g3-101'/>
<use x='120.271' y='226.079' xlink:href='#g3-97'/>
<use x='124.339' y='226.079' xlink:href='#g3-110'/>
<use x='128.711' y='226.079' xlink:href='#g3-78'/>
</g>
<g transform='matrix(1 0 0 1 106.188 34.954)'>
<use x='114.487' y='226.079' xlink:href='#g3-114'/>
<use x='117.379' y='226.079' xlink:href='#g3-101'/>
<use x='121.142' y='226.079' xlink:href='#g3-100'/>
<use x='125.515' y='226.079' xlink:href='#g3-105'/>
<use x='127.535' y='226.079' xlink:href='#g3-115'/>
</g>
<g transform='matrix(1 0 0 1 159.716 34.954)'>
<use x='114.487' y='226.079' xlink:href='#g3-108'/>
<use x='116.507' y='226.079' xlink:href='#g3-97'/>
<use x='120.34' y='226.079' xlink:href='#g3-114'/>
<use x='123.232' y='226.079' xlink:href='#g3-115'/>
<use x='126.478' y='226.079' xlink:href='#g3-111'/>
<use x='130.712' y='226.079' xlink:href='#g3-110'/>
<use x='135.085' y='226.079' xlink:href='#g3-78'/>
</g>
<g transform='matrix(1 0 0 1 215.596 34.954)'>
<use x='114.487' y='226.079' xlink:href='#g3-109'/>
<use x='121.211' y='226.079' xlink:href='#g3-115'/>
<use x='124.458' y='226.079' xlink:href='#g3-116'/>
<use x='127.516' y='226.079' xlink:href='#g3-114'/>
<use x='130.408' y='226.079' xlink:href='#g3-101'/>
<use x='134.171' y='226.079' xlink:href='#g3-115'/>
<use x='137.418' y='226.079' xlink:href='#g3-115'/>
<use x='140.664' y='226.079' xlink:href='#g3-78'/>
</g>
<g transform='matrix(1 0 0 1 277.158 34.954)'>
<use x='114.487' y='226.079' xlink:href='#g3-114'/>
<use x='117.379' y='226.079' xlink:href='#g3-112'/>
<use x='121.751' y='226.079' xlink:href='#g3-116'/>
<use x='124.809' y='226.079' xlink:href='#g3-101'/>
<use x='128.573' y='226.079' xlink:href='#g3-115'/>
<use x='131.819' y='226.079' xlink:href='#g3-116'/>
<use x='134.877' y='226.079' xlink:href='#g3-78'/>
</g>
<g transform='matrix(1 0 0 1 -40.942 22.192)'>
<use x='114.487' y='226.079' xlink:href='#g2-48'/>
<use x='117.133' y='226.079' xlink:href='#g2-120'/>
</g>
<g transform='matrix(1 0 0 1 -45.059 -11.361)'>
<use x='114.487' y='226.079' xlink:href='#g2-48'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-53'/>
<use x='121.25' y='226.079' xlink:href='#g2-120'/>
</g>
<g transform='matrix(1 0 0 1 -45.059 -44.915)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-48'/>
<use x='121.25' y='226.079' xlink:href='#g2-120'/>
</g>
<g transform='matrix(1 0 0 1 -45.059 -78.468)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-53'/>
<use x='121.25' y='226.079' xlink:href='#g2-120'/>
</g>
<g transform='matrix(1 0 0 1 -45.059 -112.021)'>
<use x='114.487' y='226.079' xlink:href='#g2-50'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-48'/>
<use x='121.25' y='226.079' xlink:href='#g2-120'/>
</g>
<g transform='matrix(1 0 0 1 -45.059 -145.574)'>
<use x='114.487' y='226.079' xlink:href='#g2-50'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-53'/>
<use x='121.25' y='226.079' xlink:href='#g2-120'/>
</g>
<path d='M82.148 179.531H434.164' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M86.328 246.637H89.566V179.531H86.328ZM144.996 246.637H148.234V179.531H144.996ZM203.668 246.637H206.902V179.531H203.668ZM262.336 246.637H265.574V179.531H262.336ZM321.004 246.637H324.242V179.531H321.004ZM379.672 246.637H382.91V179.531H379.672Z' fill='#fff' clip-path='url(#clip1)'/>
<path d='M86.328 246.637H89.566V179.531H86.328ZM144.996 246.637H148.234V179.531H144.996ZM203.668 246.637H206.902V179.531H203.668ZM262.336 246.637H265.574V179.531H262.336ZM321.004 246.637H324.242V179.531H321.004ZM379.672 246.637H382.91V179.531H379.672Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M87.949 179.531' fill='#fff' clip-path='url(#clip1)'/>
<path d='M85.953 179.531H89.938' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M87.949 179.531' fill='#fff' clip-path='url(#clip1)'/>
<path d='M85.953 179.531H89.938' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M146.617 179.531' fill='#fff' clip-path='url(#clip1)'/>
<path d='M144.625 179.531H148.609' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M146.617 179.531' fill='#fff' clip-path='url(#clip1)'/>
<path d='M144.625 179.531H148.609' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M205.285 179.531' fill='#fff' clip-path='url(#clip1)'/>
<path d='M203.293 179.531H207.277' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M205.285 179.531' fill='#fff' clip-path='url(#clip1)'/>
<path d='M203.293 179.531H207.277' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M263.953 179.531' fill='#fff' clip-path='url(#clip1)'/>
<path d='M261.961 179.531H265.945' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M263.953 179.531' fill='#fff' clip-path='url(#clip1)'/>
<path d='M261.961 179.531H265.945' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M322.625 179.531' fill='#fff' clip-path='url(#clip1)'/>
<path d='M320.629 179.531H324.617' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M322.625 179.531' fill='#fff' clip-path='url(#clip1)'/>
<path d='M320.629 179.531H324.617' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M381.293 179.531' fill='#fff' clip-path='url(#clip1)'/>
<path d='M379.301 179.531H383.285' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M381.293 179.531' fill='#fff' clip-path='url(#clip1)'/>
<path d='M379.301 179.531H383.285' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M91.559 246.637H94.797V180.336H91.559ZM150.227 246.637H153.465V177.449H150.227ZM208.899 246.637H212.133V179.598H208.899ZM267.567 246.637H270.805V186.441H267.567ZM326.234 246.637H329.473V78.871H326.234ZM384.902 246.637H388.141V162.754H384.902Z' fill='#f0e0f0' clip-path='url(#clip1)'/>
<path d='M91.559 246.637H94.797V180.336H91.559ZM150.227 246.637H153.465V177.449H150.227ZM208.899 246.637H212.133V179.598H208.899ZM267.567 246.637H270.805V186.441H267.567ZM326.234 246.637H329.473V78.871H326.234ZM384.902 246.637H388.141V162.754H384.902Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M93.18 180.336' fill='#f0e0f0' clip-path='url(#clip1)'/>
<path d='M91.184 180.336H95.168' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M93.18 180.336' fill='#f0e0f0' clip-path='url(#clip1)'/>
<path d='M91.184 180.336H95.168' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M151.848 177.449' fill='#f0e0f0' clip-path='url(#clip1)'/>
<path d='M149.855 177.45H153.84' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M151.848 177.449' fill='#f0e0f0' clip-path='url(#clip1)'/>
<path d='M149.855 177.45H153.84' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M210.516 179.598' fill='#f0e0f0' clip-path='url(#clip1)'/>
<path d='M208.523 179.598H212.507' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M210.516 179.598' fill='#f0e0f0' clip-path='url(#clip1)'/>
<path d='M208.523 179.598H212.507' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M269.184 186.441' fill='#f0e0f0' clip-path='url(#clip1)'/>
<path d='M267.191 186.442H271.175' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M269.184 186.441' fill='#f0e0f0' clip-path='url(#clip1)'/>
<path d='M267.191 186.442H271.175' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M327.856 78.871' fill='#f0e0f0' clip-path='url(#clip1)'/>
<path d='M325.859 78.871H329.847' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M327.856 78.871' fill='#f0e0f0' clip-path='url(#clip1)'/>
<path d='M325.859 78.871H329.847' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M386.524 162.754' fill='#f0e0f0' clip-path='url(#clip1)'/>
<path d='M384.531 162.753H388.515' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M386.524 162.754' fill='#f0e0f0' clip-path='url(#clip1)'/>
<path d='M384.531 162.753H388.515' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M96.789 246.637H100.027V87.73H96.789ZM155.457 246.637H158.695V189.262H155.457ZM214.129 246.637H217.363V161.074H214.129ZM272.797 246.637H276.035V221.738H272.797ZM331.465 246.637H334.703V194.965H331.465ZM390.133 246.637H393.371V212.949H390.133Z' fill='#e1c2e1' clip-path='url(#clip1)'/>
<path d='M96.789 246.637H100.027V87.73H96.789ZM155.457 246.637H158.695V189.262H155.457ZM214.129 246.637H217.363V161.074H214.129ZM272.797 246.637H276.035V221.738H272.797ZM331.465 246.637H334.703V194.965H331.465ZM390.133 246.637H393.371V212.949H390.133Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M98.41 87.73' fill='#e1c2e1' clip-path='url(#clip1)'/>
<path d='M96.414 87.73H100.399' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M98.41 87.73' fill='#e1c2e1' clip-path='url(#clip1)'/>
<path d='M96.414 87.73H100.399' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M157.078 189.262' fill='#e1c2e1' clip-path='url(#clip1)'/>
<path d='M155.086 189.261H159.071' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M157.078 189.262' fill='#e1c2e1' clip-path='url(#clip1)'/>
<path d='M155.086 189.261H159.071' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M215.746 161.074' fill='#e1c2e1' clip-path='url(#clip1)'/>
<path d='M213.754 161.074H217.738' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M215.746 161.074' fill='#e1c2e1' clip-path='url(#clip1)'/>
<path d='M213.754 161.074H217.738' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M274.414 221.738' fill='#e1c2e1' clip-path='url(#clip1)'/>
<path d='M272.422 221.739H276.406' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M274.414 221.738' fill='#e1c2e1' clip-path='url(#clip1)'/>
<path d='M272.422 221.739H276.406' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M333.086 194.965' fill='#e1c2e1' clip-path='url(#clip1)'/>
<path d='M331.09 194.964H335.078' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M333.086 194.965' fill='#e1c2e1' clip-path='url(#clip1)'/>
<path d='M331.09 194.964H335.078' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M391.754 212.949' fill='#e1c2e1' clip-path='url(#clip1)'/>
<path d='M389.762 212.949H393.746' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M391.754 212.949' fill='#e1c2e1' clip-path='url(#clip1)'/>
<path d='M389.762 212.949H393.746' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M102.02 246.637H105.258V152.219H102.02ZM160.688 246.637H163.926V180.535H160.688ZM219.359 246.637H222.594V174.766H219.359ZM278.027 246.637H281.266V206.172H278.027ZM336.695 246.637H339.934V192.953H336.695ZM395.363 246.637H398.602V183.223H395.363Z' fill='#d1a3d1' clip-path='url(#clip1)'/>
<path d='M102.02 246.637H105.258V152.219H102.02ZM160.688 246.637H163.926V180.535H160.688ZM219.359 246.637H222.594V174.766H219.359ZM278.027 246.637H281.266V206.172H278.027ZM336.695 246.637H339.934V192.953H336.695ZM395.363 246.637H398.602V183.223H395.363Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M103.641 152.219' fill='#d1a3d1' clip-path='url(#clip1)'/>
<path d='M101.644 152.219H105.629' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M103.641 152.219' fill='#d1a3d1' clip-path='url(#clip1)'/>
<path d='M101.644 152.219H105.629' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M162.309 180.535' fill='#d1a3d1' clip-path='url(#clip1)'/>
<path d='M160.316 180.536H164.301' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M162.309 180.535' fill='#d1a3d1' clip-path='url(#clip1)'/>
<path d='M160.316 180.536H164.301' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M220.977 174.766' fill='#d1a3d1' clip-path='url(#clip1)'/>
<path d='M218.984 174.765H222.969' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M220.977 174.766' fill='#d1a3d1' clip-path='url(#clip1)'/>
<path d='M218.984 174.765H222.969' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M279.645 206.172' fill='#d1a3d1' clip-path='url(#clip1)'/>
<path d='M277.652 206.172H281.636' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M279.645 206.172' fill='#d1a3d1' clip-path='url(#clip1)'/>
<path d='M277.652 206.172H281.636' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M338.317 192.953' fill='#d1a3d1' clip-path='url(#clip1)'/>
<path d='M336.32 192.953H340.308' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M338.317 192.953' fill='#d1a3d1' clip-path='url(#clip1)'/>
<path d='M336.32 192.953H340.308' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M396.984 183.223' fill='#d1a3d1' clip-path='url(#clip1)'/>
<path d='M394.992 183.223H398.976' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M396.984 183.223' fill='#d1a3d1' clip-path='url(#clip1)'/>
<path d='M394.992 183.223H398.976' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M107.25 246.637H110.488V154.5H107.25ZM165.918 246.637H169.156V169.734H165.918ZM224.59 246.637H227.824V134.703H224.59ZM283.258 246.637H286.496V192.281H283.258ZM341.926 246.637H345.164V197.313H341.926ZM400.594 246.637H403.832V195.703H400.594Z' fill='#c285c2' clip-path='url(#clip1)'/>
<path d='M107.25 246.637H110.488V154.5H107.25ZM165.918 246.637H169.156V169.734H165.918ZM224.59 246.637H227.824V134.703H224.59ZM283.258 246.637H286.496V192.281H283.258ZM341.926 246.637H345.164V197.313H341.926ZM400.594 246.637H403.832V195.703H400.594Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M108.871 154.5' fill='#c285c2' clip-path='url(#clip1)'/>
<path d='M106.875 154.5H110.86' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M108.871 154.5' fill='#c285c2' clip-path='url(#clip1)'/>
<path d='M106.875 154.5H110.86' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M167.539 169.734' fill='#c285c2' clip-path='url(#clip1)'/>
<path d='M165.547 169.734H169.532' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M167.539 169.734' fill='#c285c2' clip-path='url(#clip1)'/>
<path d='M165.547 169.734H169.532' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M226.207 134.703' fill='#c285c2' clip-path='url(#clip1)'/>
<path d='M224.215 134.703H228.2' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M226.207 134.703' fill='#c285c2' clip-path='url(#clip1)'/>
<path d='M224.215 134.703H228.2' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M284.875 192.281' fill='#c285c2' clip-path='url(#clip1)'/>
<path d='M282.883 192.281H286.868' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M284.875 192.281' fill='#c285c2' clip-path='url(#clip1)'/>
<path d='M282.883 192.281H286.868' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M343.547 197.313' fill='#c285c2' clip-path='url(#clip1)'/>
<path d='M341.551 197.312H345.539' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M343.547 197.313' fill='#c285c2' clip-path='url(#clip1)'/>
<path d='M341.551 197.312H345.539' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M402.215 195.703' fill='#c285c2' clip-path='url(#clip1)'/>
<path d='M400.223 195.704H404.207' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M402.215 195.703' fill='#c285c2' clip-path='url(#clip1)'/>
<path d='M400.223 195.704H404.207' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M112.481 246.637H115.719V167.922H112.481ZM171.149 246.637H174.387V172.148H171.149ZM229.82 246.637H233.055V160.07H229.82ZM288.488 246.637H291.727V196.305H288.488ZM347.156 246.637H350.395V78.871H347.156ZM405.824 246.637H409.063V146.379H405.824Z' fill='#b366b3' clip-path='url(#clip1)'/>
<path d='M112.481 246.637H115.719V167.922H112.481ZM171.149 246.637H174.387V172.148H171.149ZM229.82 246.637H233.055V160.07H229.82ZM288.488 246.637H291.727V196.305H288.488ZM347.156 246.637H350.395V78.871H347.156ZM405.824 246.637H409.063V146.379H405.824Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M114.098 167.922' fill='#b366b3' clip-path='url(#clip1)'/>
<path d='M112.105 167.922H116.09' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M114.098 167.922' fill='#b366b3' clip-path='url(#clip1)'/>
<path d='M112.105 167.922H116.09' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M172.77 172.148' fill='#b366b3' clip-path='url(#clip1)'/>
<path d='M170.777 172.148H174.762' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M172.77 172.148' fill='#b366b3' clip-path='url(#clip1)'/>
<path d='M170.777 172.148H174.762' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M231.438 160.07' fill='#b366b3' clip-path='url(#clip1)'/>
<path d='M229.445 160.07H233.43' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M231.438 160.07' fill='#b366b3' clip-path='url(#clip1)'/>
<path d='M229.445 160.07H233.43' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M290.106 196.305' fill='#b366b3' clip-path='url(#clip1)'/>
<path d='M288.113 196.304H292.098' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M290.106 196.305' fill='#b366b3' clip-path='url(#clip1)'/>
<path d='M288.113 196.304H292.098' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M348.777 78.871' fill='#b366b3' clip-path='url(#clip1)'/>
<path d='M346.781 78.871H350.769' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M348.777 78.871' fill='#b366b3' clip-path='url(#clip1)'/>
<path d='M346.781 78.871H350.769' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M407.445 146.379' fill='#b366b3' clip-path='url(#clip1)'/>
<path d='M405.453 146.379H409.437' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M407.445 146.379' fill='#b366b3' clip-path='url(#clip1)'/>
<path d='M405.453 146.379H409.437' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M117.711 246.637H120.949V153.223H117.711ZM176.379 246.637H179.617V169.465H176.379ZM235.051 246.637H238.285V174.633H235.051ZM293.719 246.637H296.957V215.766H293.719ZM352.387 246.637H355.625V78.871H352.387ZM411.055 246.637H414.293V191.742H411.055Z' fill='#a447a4' clip-path='url(#clip1)'/>
<path d='M117.711 246.637H120.949V153.223H117.711ZM176.379 246.637H179.617V169.465H176.379ZM235.051 246.637H238.285V174.633H235.051ZM293.719 246.637H296.957V215.766H293.719ZM352.387 246.637H355.625V78.871H352.387ZM411.055 246.637H414.293V191.742H411.055Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M119.328 153.223' fill='#a447a4' clip-path='url(#clip1)'/>
<path d='M117.336 153.222H121.321' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M119.328 153.223' fill='#a447a4' clip-path='url(#clip1)'/>
<path d='M117.336 153.222H121.321' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M178 169.465' fill='#a447a4' clip-path='url(#clip1)'/>
<path d='M176.008 169.465H179.993' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M178 169.465' fill='#a447a4' clip-path='url(#clip1)'/>
<path d='M176.008 169.465H179.993' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M236.668 174.633' fill='#a447a4' clip-path='url(#clip1)'/>
<path d='M234.676 174.633H238.661' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M236.668 174.633' fill='#a447a4' clip-path='url(#clip1)'/>
<path d='M234.676 174.633H238.661' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M295.336 215.766' fill='#a447a4' clip-path='url(#clip1)'/>
<path d='M293.344 215.765H297.329' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M295.336 215.766' fill='#a447a4' clip-path='url(#clip1)'/>
<path d='M293.344 215.765H297.329' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M354.008 78.871' fill='#a447a4' clip-path='url(#clip1)'/>
<path d='M352.012 78.871H356' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M354.008 78.871' fill='#a447a4' clip-path='url(#clip1)'/>
<path d='M352.012 78.871H356' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M412.676 191.742' fill='#a447a4' clip-path='url(#clip1)'/>
<path d='M410.684 191.742H414.668' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M412.676 191.742' fill='#a447a4' clip-path='url(#clip1)'/>
<path d='M410.684 191.742H414.668' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M122.941 246.637H126.18V177.047H122.941ZM181.609 246.637H184.848V178.457H181.609ZM240.281 246.637H243.516V178.992H240.281ZM298.949 246.637H302.188V221.875H298.949ZM357.617 246.637H360.856V78.871H357.617ZM416.285 246.637H419.524V157.25H416.285Z' fill='#942994' clip-path='url(#clip1)'/>
<path d='M122.941 246.637H126.18V177.047H122.941ZM181.609 246.637H184.848V178.457H181.609ZM240.281 246.637H243.516V178.992H240.281ZM298.949 246.637H302.188V221.875H298.949ZM357.617 246.637H360.856V78.871H357.617ZM416.285 246.637H419.524V157.25H416.285Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M124.559 177.047' fill='#942994' clip-path='url(#clip1)'/>
<path d='M122.566 177.047H126.551' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M124.559 177.047' fill='#942994' clip-path='url(#clip1)'/>
<path d='M122.566 177.047H126.551' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M183.231 178.457' fill='#942994' clip-path='url(#clip1)'/>
<path d='M181.238 178.457H185.223' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M183.231 178.457' fill='#942994' clip-path='url(#clip1)'/>
<path d='M181.238 178.457H185.223' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M241.899 178.992' fill='#942994' clip-path='url(#clip1)'/>
<path d='M239.906 178.992H243.891' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M241.899 178.992' fill='#942994' clip-path='url(#clip1)'/>
<path d='M239.906 178.992H243.891' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M300.567 221.875' fill='#942994' clip-path='url(#clip1)'/>
<path d='M298.574 221.875H302.559' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M300.567 221.875' fill='#942994' clip-path='url(#clip1)'/>
<path d='M298.574 221.875H302.559' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M359.238 78.871' fill='#942994' clip-path='url(#clip1)'/>
<path d='M357.242 78.871H361.23' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M359.238 78.871' fill='#942994' clip-path='url(#clip1)'/>
<path d='M357.242 78.871H361.23' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M417.906 157.25' fill='#942994' clip-path='url(#clip1)'/>
<path d='M415.914 157.25H419.898' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M417.906 157.25' fill='#942994' clip-path='url(#clip1)'/>
<path d='M415.914 157.25H419.898' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M128.172 246.637H131.41V182.414H128.172ZM186.84 246.637H190.078V170.805H186.84ZM245.512 246.637H248.746V179.059H245.512ZM304.18 246.637H307.418V207.176H304.18ZM362.848 246.637H366.086V153.629H362.848ZM421.516 246.637H424.754V207.313H421.516Z' fill='#850a85' clip-path='url(#clip1)'/>
<path d='M128.172 246.637H131.41V182.414H128.172ZM186.84 246.637H190.078V170.805H186.84ZM245.512 246.637H248.746V179.059H245.512ZM304.18 246.637H307.418V207.176H304.18ZM362.848 246.637H366.086V153.629H362.848ZM421.516 246.637H424.754V207.313H421.516Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M129.789 182.414' fill='#850a85' clip-path='url(#clip1)'/>
<path d='M127.797 182.415H131.782' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M129.789 182.414' fill='#850a85' clip-path='url(#clip1)'/>
<path d='M127.797 182.415H131.782' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M188.461 170.805' fill='#850a85' clip-path='url(#clip1)'/>
<path d='M186.469 170.805H190.454' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M188.461 170.805' fill='#850a85' clip-path='url(#clip1)'/>
<path d='M186.469 170.805H190.454' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M247.129 179.059' fill='#850a85' clip-path='url(#clip1)'/>
<path d='M245.137 179.058H249.122' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M247.129 179.059' fill='#850a85' clip-path='url(#clip1)'/>
<path d='M245.137 179.058H249.122' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M305.797 207.176' fill='#850a85' clip-path='url(#clip1)'/>
<path d='M303.804 207.176H307.789' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M305.797 207.176' fill='#850a85' clip-path='url(#clip1)'/>
<path d='M303.804 207.176H307.789' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M364.469 153.629' fill='#850a85' clip-path='url(#clip1)'/>
<path d='M362.473 153.629H366.461' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M364.469 153.629' fill='#850a85' clip-path='url(#clip1)'/>
<path d='M362.473 153.629H366.461' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M423.137 207.313' fill='#850a85' clip-path='url(#clip1)'/>
<path d='M421.144 207.313H425.128' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M423.137 207.313' fill='#850a85' clip-path='url(#clip1)'/>
<path d='M421.144 207.313H425.128' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M133.402 246.637H136.641V178.055H133.402ZM192.07 246.637H195.309V164.969H192.07ZM250.742 246.637H253.977V175.703H250.742ZM309.41 246.637H312.649V184.027H309.41ZM368.078 246.637H371.317V99.809H368.078ZM426.746 246.637H429.984V143.023H426.746Z' fill='#760076' clip-path='url(#clip1)'/>
<path d='M133.402 246.637H136.641V178.055H133.402ZM192.07 246.637H195.309V164.969H192.07ZM250.742 246.637H253.977V175.703H250.742ZM309.41 246.637H312.649V184.027H309.41ZM368.078 246.637H371.317V99.809H368.078ZM426.746 246.637H429.984V143.023H426.746Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M135.02 178.055' fill='#760076' clip-path='url(#clip1)'/>
<path d='M133.027 178.055H137.012' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M135.02 178.055' fill='#760076' clip-path='url(#clip1)'/>
<path d='M133.027 178.055H137.012' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M193.692 164.969' fill='#760076' clip-path='url(#clip1)'/>
<path d='M191.699 164.969H195.684' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M193.692 164.969' fill='#760076' clip-path='url(#clip1)'/>
<path d='M191.699 164.969H195.684' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M252.359 175.703' fill='#760076' clip-path='url(#clip1)'/>
<path d='M250.367 175.703H254.352' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M252.359 175.703' fill='#760076' clip-path='url(#clip1)'/>
<path d='M250.367 175.703H254.352' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M311.027 184.027' fill='#760076' clip-path='url(#clip1)'/>
<path d='M309.035 184.027H313.02' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M311.027 184.027' fill='#760076' clip-path='url(#clip1)'/>
<path d='M309.035 184.027H313.02' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M369.699 99.809' fill='#760076' clip-path='url(#clip1)'/>
<path d='M367.703 99.809H371.691' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M369.699 99.809' fill='#760076' clip-path='url(#clip1)'/>
<path d='M367.703 99.809H371.691' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M428.367 143.023' fill='#760076' clip-path='url(#clip1)'/>
<path d='M426.375 143.023H430.359' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M428.367 143.023' fill='#760076' clip-path='url(#clip1)'/>
<path d='M426.375 143.023H430.359' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<g transform='matrix(0 -1 1 0 -136.497 287.813)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-48'/>
<use x='121.25' y='226.079' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 -77.828 287.813)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-48'/>
<use x='121.25' y='226.079' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 -19.159 287.813)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-48'/>
<use x='121.25' y='226.079' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 39.51 287.813)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-48'/>
<use x='121.25' y='226.079' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 98.179 287.813)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-48'/>
<use x='121.25' y='226.079' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 156.848 287.813)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-48'/>
<use x='121.25' y='226.079' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 -131.267 288.618)'>
<use x='114.487' y='226.079' xlink:href='#g2-48'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-57'/>
<use x='121.25' y='226.079' xlink:href='#g2-57'/>
</g>
<g transform='matrix(0 -1 1 0 -72.598 285.733)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-48'/>
<use x='121.25' y='226.079' xlink:href='#g2-51'/>
</g>
<g transform='matrix(0 -1 1 0 -13.929 287.88)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-48'/>
<use x='121.25' y='226.079' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 44.74 294.725)'>
<use x='114.487' y='226.079' xlink:href='#g2-48'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-57'/>
<use x='121.25' y='226.079' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 103.409 187.154)'>
<use x='109.598' y='226.079' xlink:href='#g4-1'/>
<use x='113.103' y='226.079' xlink:href='#g4-1'/>
<use x='116.608' y='226.079' xlink:href='#g4-1'/>
<use x='120.114' y='226.079' xlink:href='#g2-51'/>
<use x='122.76' y='226.079' xlink:href='#g2-46'/>
<use x='124.23' y='226.079' xlink:href='#g2-49'/>
<use x='126.877' y='226.079' xlink:href='#g2-55'/>
<use x='129.523' y='226.079' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 162.078 271.036)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-50'/>
<use x='121.25' y='226.079' xlink:href='#g2-53'/>
</g>
<g transform='matrix(0 -1 1 0 -126.036 196.012)'>
<use x='114.487' y='226.079' xlink:href='#g2-50'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-51'/>
<use x='121.25' y='226.079' xlink:href='#g2-55'/>
</g>
<g transform='matrix(0 -1 1 0 -67.367 297.543)'>
<use x='114.487' y='226.079' xlink:href='#g2-48'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-56'/>
<use x='121.25' y='226.079' xlink:href='#g2-54'/>
</g>
<g transform='matrix(0 -1 1 0 -8.698 269.359)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-50'/>
<use x='121.25' y='226.079' xlink:href='#g2-56'/>
</g>
<g transform='matrix(0 -1 1 0 49.971 330.023)'>
<use x='114.487' y='226.079' xlink:href='#g2-48'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-51'/>
<use x='121.25' y='226.079' xlink:href='#g2-55'/>
</g>
<g transform='matrix(0 -1 1 0 108.64 303.247)'>
<use x='114.487' y='226.079' xlink:href='#g2-48'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-55'/>
<use x='121.25' y='226.079' xlink:href='#g2-55'/>
</g>
<g transform='matrix(0 -1 1 0 167.309 321.232)'>
<use x='114.487' y='226.079' xlink:href='#g2-48'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-53'/>
<use x='121.25' y='226.079' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 -120.806 260.501)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-52'/>
<use x='121.25' y='226.079' xlink:href='#g2-49'/>
</g>
<g transform='matrix(0 -1 1 0 -62.137 288.819)'>
<use x='114.487' y='226.079' xlink:href='#g2-48'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-57'/>
<use x='121.25' y='226.079' xlink:href='#g2-57'/>
</g>
<g transform='matrix(0 -1 1 0 -3.468 283.048)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-48'/>
<use x='121.25' y='226.079' xlink:href='#g2-55'/>
</g>
<g transform='matrix(0 -1 1 0 55.201 314.454)'>
<use x='114.487' y='226.079' xlink:href='#g2-48'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-54'/>
<use x='121.25' y='226.079' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 113.87 301.234)'>
<use x='114.487' y='226.079' xlink:href='#g2-48'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-56'/>
<use x='121.25' y='226.079' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 172.539 291.504)'>
<use x='114.487' y='226.079' xlink:href='#g2-48'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-57'/>
<use x='121.25' y='226.079' xlink:href='#g2-52'/>
</g>
<g transform='matrix(0 -1 1 0 -115.575 262.782)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-51'/>
<use x='121.25' y='226.079' xlink:href='#g2-55'/>
</g>
<g transform='matrix(0 -1 1 0 -56.906 278.015)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-49'/>
<use x='121.25' y='226.079' xlink:href='#g2-53'/>
</g>
<g transform='matrix(0 -1 1 0 1.763 242.986)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-54'/>
<use x='121.25' y='226.079' xlink:href='#g2-55'/>
</g>
<g transform='matrix(0 -1 1 0 60.432 300.563)'>
<use x='114.487' y='226.079' xlink:href='#g2-48'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-56'/>
<use x='121.25' y='226.079' xlink:href='#g2-49'/>
</g>
<g transform='matrix(0 -1 1 0 119.101 305.596)'>
<use x='114.487' y='226.079' xlink:href='#g2-48'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-55'/>
<use x='121.25' y='226.079' xlink:href='#g2-51'/>
</g>
<g transform='matrix(0 -1 1 0 177.77 303.985)'>
<use x='114.487' y='226.079' xlink:href='#g2-48'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-55'/>
<use x='121.25' y='226.079' xlink:href='#g2-54'/>
</g>
<g transform='matrix(0 -1 1 0 -110.345 276.204)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-49'/>
<use x='121.25' y='226.079' xlink:href='#g2-55'/>
</g>
<g transform='matrix(0 -1 1 0 -51.676 280.431)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-49'/>
<use x='121.25' y='226.079' xlink:href='#g2-49'/>
</g>
<g transform='matrix(0 -1 1 0 6.993 268.352)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-50'/>
<use x='121.25' y='226.079' xlink:href='#g2-57'/>
</g>
<g transform='matrix(0 -1 1 0 65.662 304.589)'>
<use x='114.487' y='226.079' xlink:href='#g2-48'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-55'/>
<use x='121.25' y='226.079' xlink:href='#g2-53'/>
</g>
<g transform='matrix(0 -1 1 0 124.331 187.154)'>
<use x='109.598' y='226.079' xlink:href='#g4-1'/>
<use x='113.103' y='226.079' xlink:href='#g4-1'/>
<use x='116.608' y='226.079' xlink:href='#g4-1'/>
<use x='120.114' y='226.079' xlink:href='#g2-53'/>
<use x='122.76' y='226.079' xlink:href='#g2-46'/>
<use x='124.23' y='226.079' xlink:href='#g2-51'/>
<use x='126.877' y='226.079' xlink:href='#g2-50'/>
<use x='129.523' y='226.079' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 183 254.663)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-52'/>
<use x='121.25' y='226.079' xlink:href='#g2-57'/>
</g>
<g transform='matrix(0 -1 1 0 -105.114 261.507)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-51'/>
<use x='121.25' y='226.079' xlink:href='#g2-57'/>
</g>
<g transform='matrix(0 -1 1 0 -46.445 277.747)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-49'/>
<use x='121.25' y='226.079' xlink:href='#g2-53'/>
</g>
<g transform='matrix(0 -1 1 0 12.224 282.914)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-48'/>
<use x='121.25' y='226.079' xlink:href='#g2-55'/>
</g>
<g transform='matrix(0 -1 1 0 70.893 324.05)'>
<use x='114.487' y='226.079' xlink:href='#g2-48'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-52'/>
<use x='121.25' y='226.079' xlink:href='#g2-54'/>
</g>
<g transform='matrix(0 -1 1 0 129.562 187.154)'>
<use x='109.598' y='226.079' xlink:href='#g4-1'/>
<use x='113.103' y='226.079' xlink:href='#g4-1'/>
<use x='116.608' y='226.079' xlink:href='#g4-1'/>
<use x='120.114' y='226.079' xlink:href='#g2-50'/>
<use x='122.76' y='226.079' xlink:href='#g2-46'/>
<use x='124.23' y='226.079' xlink:href='#g2-56'/>
<use x='126.877' y='226.079' xlink:href='#g2-53'/>
<use x='129.523' y='226.079' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 188.231 300.026)'>
<use x='114.487' y='226.079' xlink:href='#g2-48'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-56'/>
<use x='121.25' y='226.079' xlink:href='#g2-50'/>
</g>
<g transform='matrix(0 -1 1 0 -99.884 285.33)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-48'/>
<use x='121.25' y='226.079' xlink:href='#g2-52'/>
</g>
<g transform='matrix(0 -1 1 0 -41.215 286.739)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-48'/>
<use x='121.25' y='226.079' xlink:href='#g2-50'/>
</g>
<g transform='matrix(0 -1 1 0 17.454 287.276)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-48'/>
<use x='121.25' y='226.079' xlink:href='#g2-49'/>
</g>
<g transform='matrix(0 -1 1 0 76.123 330.157)'>
<use x='114.487' y='226.079' xlink:href='#g2-48'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-51'/>
<use x='121.25' y='226.079' xlink:href='#g2-55'/>
</g>
<g transform='matrix(0 -1 1 0 134.792 187.154)'>
<use x='109.598' y='226.079' xlink:href='#g4-1'/>
<use x='113.103' y='226.079' xlink:href='#g4-1'/>
<use x='116.608' y='226.079' xlink:href='#g4-1'/>
<use x='120.114' y='226.079' xlink:href='#g2-52'/>
<use x='122.76' y='226.079' xlink:href='#g2-46'/>
<use x='124.23' y='226.079' xlink:href='#g2-50'/>
<use x='126.877' y='226.079' xlink:href='#g2-51'/>
<use x='129.523' y='226.079' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 193.461 265.534)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-51'/>
<use x='121.25' y='226.079' xlink:href='#g2-51'/>
</g>
<g transform='matrix(0 -1 1 0 -94.654 290.698)'>
<use x='114.487' y='226.079' xlink:href='#g2-48'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-57'/>
<use x='121.25' y='226.079' xlink:href='#g2-54'/>
</g>
<g transform='matrix(0 -1 1 0 -35.985 279.089)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-49'/>
<use x='121.25' y='226.079' xlink:href='#g2-51'/>
</g>
<g transform='matrix(0 -1 1 0 22.684 287.343)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-48'/>
<use x='121.25' y='226.079' xlink:href='#g2-49'/>
</g>
<g transform='matrix(0 -1 1 0 81.353 315.461)'>
<use x='114.487' y='226.079' xlink:href='#g2-48'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-53'/>
<use x='121.25' y='226.079' xlink:href='#g2-57'/>
</g>
<g transform='matrix(0 -1 1 0 140.022 261.91)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-51'/>
<use x='121.25' y='226.079' xlink:href='#g2-57'/>
</g>
<g transform='matrix(0 -1 1 0 198.691 315.595)'>
<use x='114.487' y='226.079' xlink:href='#g2-48'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-53'/>
<use x='121.25' y='226.079' xlink:href='#g2-57'/>
</g>
<g transform='matrix(0 -1 1 0 -89.423 286.337)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-48'/>
<use x='121.25' y='226.079' xlink:href='#g2-50'/>
</g>
<g transform='matrix(0 -1 1 0 -30.754 273.251)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-50'/>
<use x='121.25' y='226.079' xlink:href='#g2-50'/>
</g>
<g transform='matrix(0 -1 1 0 27.915 283.988)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-48'/>
<use x='121.25' y='226.079' xlink:href='#g2-54'/>
</g>
<g transform='matrix(0 -1 1 0 86.584 292.309)'>
<use x='114.487' y='226.079' xlink:href='#g2-48'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-57'/>
<use x='121.25' y='226.079' xlink:href='#g2-51'/>
</g>
<g transform='matrix(0 -1 1 0 145.253 208.091)'>
<use x='114.487' y='226.079' xlink:href='#g2-50'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-49'/>
<use x='121.25' y='226.079' xlink:href='#g2-57'/>
</g>
<g transform='matrix(0 -1 1 0 203.922 251.307)'>
<use x='114.487' y='226.079' xlink:href='#g2-49'/>
<use x='117.133' y='226.079' xlink:href='#g2-46'/>
<use x='118.603' y='226.079' xlink:href='#g2-53'/>
<use x='121.25' y='226.079' xlink:href='#g2-52'/>
</g>
<g transform='matrix(0 -1 1 0 -166.719 329.135)'>
<use x='114.487' y='226.079' xlink:href='#g1-82'/>
<use x='120.457' y='226.079' xlink:href='#g1-101'/>
<use x='124.553' y='226.079' xlink:href='#g1-108'/>
<use x='126.753' y='226.079' xlink:href='#g1-97'/>
<use x='131.181' y='226.079' xlink:href='#g1-116'/>
<use x='134.509' y='226.079' xlink:href='#g1-105'/>
<use x='136.709' y='226.079' xlink:href='#g1-118'/>
<use x='140.957' y='226.079' xlink:href='#g1-101'/>
<use x='148.124' y='226.079' xlink:href='#g1-114'/>
<use x='151.272' y='226.079' xlink:href='#g1-115'/>
<use x='154.805' y='226.079' xlink:href='#g1-115'/>
<use x='161.409' y='226.079' xlink:href='#g3-40'/>
<use x='164.702' y='226.079' xlink:href='#g3-108'/>
<use x='166.722' y='226.079' xlink:href='#g3-111'/>
<use x='170.721' y='226.079' xlink:href='#g3-119'/>
<use x='176.27' y='226.079' xlink:href='#g3-101'/>
<use x='180.034' y='226.079' xlink:href='#g3-114'/>
<use x='185.749' y='226.079' xlink:href='#g3-105'/>
<use x='187.769' y='226.079' xlink:href='#g3-115'/>
<use x='193.838' y='226.079' xlink:href='#g3-98'/>
<use x='198.446' y='226.079' xlink:href='#g3-101'/>
<use x='202.209' y='226.079' xlink:href='#g3-116'/>
<use x='205.267' y='226.079' xlink:href='#g3-116'/>
<use x='208.325' y='226.079' xlink:href='#g3-101'/>
<use x='212.089' y='226.079' xlink:href='#g3-114'/>
<use x='214.981' y='226.079' xlink:href='#g3-41'/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 66 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 86 KiB

View File

@ -0,0 +1,766 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- This file was generated by dvisvgm 2.9.1 -->
<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='315.585pt' height='208.604pt' viewBox='52.934 54.994 315.585 208.604'>
<rect width="1000%" height="1000%" fill="white"/>
<defs>
<clipPath id='clip1'>
<path d='M82.148 203.938H368.121V78.692H82.148Z'/>
</clipPath>
<use id='g2-44' xlink:href='#g0-44' transform='scale(.714)'/>
<use id='g2-45' xlink:href='#g0-45' transform='scale(.714)'/>
<use id='g2-46' xlink:href='#g0-46' transform='scale(.714)'/>
<use id='g2-48' xlink:href='#g0-48' transform='scale(.714)'/>
<use id='g2-49' xlink:href='#g0-49' transform='scale(.714)'/>
<use id='g2-50' xlink:href='#g0-50' transform='scale(.714)'/>
<use id='g2-51' xlink:href='#g0-51' transform='scale(.714)'/>
<use id='g2-52' xlink:href='#g0-52' transform='scale(.714)'/>
<use id='g2-53' xlink:href='#g0-53' transform='scale(.714)'/>
<use id='g2-54' xlink:href='#g0-54' transform='scale(.714)'/>
<use id='g2-55' xlink:href='#g0-55' transform='scale(.714)'/>
<use id='g2-56' xlink:href='#g0-56' transform='scale(.714)'/>
<use id='g2-57' xlink:href='#g0-57' transform='scale(.714)'/>
<use id='g2-64' xlink:href='#g0-64' transform='scale(.714)'/>
<use id='g2-65' xlink:href='#g0-65' transform='scale(.714)'/>
<use id='g2-67' xlink:href='#g0-67' transform='scale(.714)'/>
<use id='g2-71' xlink:href='#g0-71' transform='scale(.714)'/>
<use id='g2-73' xlink:href='#g0-73' transform='scale(.714)'/>
<use id='g2-79' xlink:href='#g0-79' transform='scale(.714)'/>
<use id='g2-83' xlink:href='#g0-83' transform='scale(.714)'/>
<use id='g2-97' xlink:href='#g0-97' transform='scale(.714)'/>
<use id='g2-98' xlink:href='#g0-98' transform='scale(.714)'/>
<use id='g2-99' xlink:href='#g0-99' transform='scale(.714)'/>
<use id='g2-101' xlink:href='#g0-101' transform='scale(.714)'/>
<use id='g2-103' xlink:href='#g0-103' transform='scale(.714)'/>
<use id='g2-104' xlink:href='#g0-104' transform='scale(.714)'/>
<use id='g2-105' xlink:href='#g0-105' transform='scale(.714)'/>
<use id='g2-108' xlink:href='#g0-108' transform='scale(.714)'/>
<use id='g2-109' xlink:href='#g0-109' transform='scale(.714)'/>
<use id='g2-110' xlink:href='#g0-110' transform='scale(.714)'/>
<use id='g2-111' xlink:href='#g0-111' transform='scale(.714)'/>
<use id='g2-112' xlink:href='#g0-112' transform='scale(.714)'/>
<use id='g2-114' xlink:href='#g0-114' transform='scale(.714)'/>
<use id='g2-115' xlink:href='#g0-115' transform='scale(.714)'/>
<use id='g2-116' xlink:href='#g0-116' transform='scale(.714)'/>
<use id='g2-120' xlink:href='#g0-120' transform='scale(.714)'/>
<use id='g2-122' xlink:href='#g0-122' transform='scale(.714)'/>
<use id='g3-40' xlink:href='#g0-40' transform='scale(1.143)'/>
<use id='g3-41' xlink:href='#g0-41' transform='scale(1.143)'/>
<use id='g3-45' xlink:href='#g0-45' transform='scale(1.143)'/>
<use id='g3-58' xlink:href='#g0-58' transform='scale(1.143)'/>
<use id='g3-78' xlink:href='#g0-78' transform='scale(1.143)'/>
<use id='g3-97' xlink:href='#g0-97' transform='scale(1.143)'/>
<use id='g3-98' xlink:href='#g0-98' transform='scale(1.143)'/>
<use id='g3-99' xlink:href='#g0-99' transform='scale(1.143)'/>
<use id='g3-100' xlink:href='#g0-100' transform='scale(1.143)'/>
<use id='g3-101' xlink:href='#g0-101' transform='scale(1.143)'/>
<use id='g3-102' xlink:href='#g0-102' transform='scale(1.143)'/>
<use id='g3-104' xlink:href='#g0-104' transform='scale(1.143)'/>
<use id='g3-105' xlink:href='#g0-105' transform='scale(1.143)'/>
<use id='g3-106' xlink:href='#g0-106' transform='scale(1.143)'/>
<use id='g3-108' xlink:href='#g0-108' transform='scale(1.143)'/>
<use id='g3-109' xlink:href='#g0-109' transform='scale(1.143)'/>
<use id='g3-110' xlink:href='#g0-110' transform='scale(1.143)'/>
<use id='g3-111' xlink:href='#g0-111' transform='scale(1.143)'/>
<use id='g3-114' xlink:href='#g0-114' transform='scale(1.143)'/>
<use id='g3-115' xlink:href='#g0-115' transform='scale(1.143)'/>
<use id='g3-116' xlink:href='#g0-116' transform='scale(1.143)'/>
<use id='g3-119' xlink:href='#g0-119' transform='scale(1.143)'/>
<use id='g3-120' xlink:href='#g0-120' transform='scale(1.143)'/>
<use id='g3-121' xlink:href='#g0-121' transform='scale(1.143)'/>
<path id='g4-1' d='M1.445-1.245C1.445-1.41 1.305-1.549 1.141-1.549S.837-1.41 .837-1.245S.976-.941 1.141-.941S1.445-1.081 1.445-1.245Z'/>
<path id='g1-82' d='M3.891-2.914C4.806-3.165 5.452-3.811 5.452-4.546C5.452-5.469 4.411-6.223 3.129-6.223H.87V0H1.704V-2.824H3.138L4.842 0H5.703L3.891-2.914ZM1.704-3.407V-5.694H3.022C4.062-5.694 4.671-5.192 4.671-4.546C4.671-3.963 4.125-3.407 3.022-3.407H1.704Z'/>
<path id='g1-97' d='M3.694-2.591C3.694-3.479 3.04-4.133 2.152-4.133C1.569-4.133 1.139-3.981 .708-3.739L.762-3.102C1.21-3.434 1.65-3.569 2.143-3.569C2.645-3.569 2.95-3.165 2.95-2.582V-2.206C1.408-2.17 .395-1.766 .395-1.04C.395-.619 .672 .099 1.453 .099C1.632 .099 2.412 .081 2.977-.341V0H3.694V-2.591ZM2.95-1.255C2.95-1.067 2.95-.843 2.627-.655C2.403-.52 2.107-.484 1.928-.484C1.47-.484 1.085-.699 1.085-1.058C1.085-1.695 2.833-1.722 2.95-1.722V-1.255Z'/>
<path id='g1-101' d='M3.829-1.964C3.829-2.242 3.82-2.923 3.47-3.461C3.093-4.026 2.52-4.133 2.179-4.133C1.139-4.133 .314-3.174 .314-2.026C.314-.843 1.193 .099 2.313 .099C2.744 .099 3.264-.009 3.784-.341L3.73-.959C3.165-.556 2.636-.484 2.322-.484C1.578-.484 1.004-1.139 .977-1.964H3.829ZM1.031-2.493C1.175-3.067 1.614-3.551 2.179-3.551C2.511-3.551 3.12-3.398 3.291-2.493H1.031Z'/>
<path id='g1-105' d='M1.524-6.133H.664V-5.272H1.524V-6.133ZM1.453-3.981H.735V0H1.453V-3.981Z'/>
<path id='g1-108' d='M1.453-6.223H.735V0H1.453V-6.223Z'/>
<path id='g1-109' d='M6.581-2.663C6.581-3.327 6.402-4.08 5.317-4.08C4.564-4.08 4.142-3.622 3.927-3.344C3.865-3.524 3.676-4.08 2.762-4.08C2.053-4.08 1.623-3.667 1.417-3.398V-4.035H.726V0H1.47V-2.188C1.47-2.78 1.704-3.497 2.385-3.497C3.282-3.497 3.282-2.86 3.282-2.6V0H4.026V-2.188C4.026-2.78 4.259-3.497 4.94-3.497C5.837-3.497 5.837-2.86 5.837-2.6V0H6.581V-2.663Z'/>
<path id='g1-116' d='M1.623-3.425H2.914V-3.981H1.623V-5.12H.959V-3.981H.17V-3.425H.933V-1.13C.933-.601 1.049 .099 1.704 .099C2.098 .099 2.564 .018 3.067-.233L2.914-.798C2.681-.619 2.367-.511 2.089-.511C1.739-.511 1.623-.825 1.623-1.291V-3.425Z'/>
<path id='g1-118' d='M4.116-3.981H3.407L2.699-2.161C2.52-1.695 2.188-.825 2.143-.493H2.125C2.107-.646 2.08-.816 1.587-2.107C1.318-2.833 .879-3.927 .861-3.981H.126L1.704 0H2.537L4.116-3.981Z'/>
<path id='g0-40' d='M2.127-5.23C2.008-5.23 1.995-5.23 1.911-5.154C1.032-4.387 .586-3.145 .586-1.743C.586-.425 .983 .844 1.904 1.653C1.995 1.743 2.008 1.743 2.127 1.743H2.462C2.441 1.73 1.764 1.151 1.444 .063C1.276-.481 1.193-1.053 1.193-1.743C1.193-4.156 2.322-5.112 2.462-5.23H2.127Z'/>
<path id='g0-41' d='M.746 1.743C.865 1.743 .879 1.743 .962 1.667C1.841 .9 2.287-.342 2.287-1.743C2.287-3.062 1.89-4.331 .969-5.14C.879-5.23 .865-5.23 .746-5.23H.411C.432-5.216 1.109-4.638 1.43-3.55C1.597-3.006 1.681-2.434 1.681-1.743C1.681 .669 .551 1.625 .411 1.743H.746Z'/>
<path id='g0-44' d='M1.339-.007V-.628H.711V0H.907L.704 .893H1.018L1.339-.007Z'/>
<path id='g0-45' d='M2.05-1.332V-1.771H.084V-1.332H2.05Z'/>
<path id='g0-46' d='M1.339-.628H.711V0H1.339V-.628Z'/>
<path id='g0-48' d='M3.403-2.267C3.403-2.601 3.403-3.417 3.075-3.989C2.72-4.617 2.183-4.721 1.848-4.721C1.534-4.721 .99-4.624 .642-4.024C.307-3.466 .293-2.706 .293-2.267C.293-1.75 .321-1.116 .614-.586C.921-.021 1.437 .146 1.848 .146C2.545 .146 2.929-.258 3.138-.697C3.382-1.193 3.403-1.834 3.403-2.267ZM1.848-.314C1.555-.314 1.22-.481 1.046-.983C.907-1.409 .9-1.848 .9-2.357C.9-2.999 .9-4.261 1.848-4.261S2.797-2.999 2.797-2.357C2.797-1.897 2.797-1.374 2.629-.928C2.434-.425 2.078-.314 1.848-.314Z'/>
<path id='g0-49' d='M2.239-4.721H2.085C1.632-4.303 1.06-4.275 .642-4.261V-3.822C.914-3.829 1.262-3.843 1.611-3.982V-.439H.683V0H3.166V-.439H2.239V-4.721Z'/>
<path id='g0-50' d='M1.974-.537C1.89-.537 1.806-.53 1.723-.53H.928L2.008-1.485C2.134-1.597 2.476-1.855 2.608-1.967C2.915-2.246 3.327-2.608 3.327-3.215C3.327-4.003 2.741-4.721 1.743-4.721C1.004-4.721 .544-4.324 .307-3.612L.635-3.201C.795-3.787 1.039-4.24 1.646-4.24C2.232-4.24 2.678-3.829 2.678-3.201C2.678-2.622 2.336-2.294 1.918-1.897C1.778-1.757 1.402-1.444 1.255-1.304C1.053-1.123 .572-.656 .37-.481V0H3.327V-.537H1.974Z'/>
<path id='g0-51' d='M.697-3.578C.983-4.135 1.485-4.289 1.82-4.289C2.232-4.289 2.538-4.052 2.538-3.654C2.538-3.285 2.287-2.831 1.757-2.741C1.723-2.734 1.695-2.734 1.234-2.699V-2.239H1.778C2.441-2.239 2.685-1.716 2.685-1.276C2.685-.732 2.35-.314 1.806-.314C1.311-.314 .746-.551 .398-.997L.307-.544C.711-.091 1.276 .146 1.82 .146C2.734 .146 3.389-.537 3.389-1.269C3.389-1.841 2.929-2.301 2.378-2.462C2.908-2.734 3.18-3.201 3.18-3.654C3.18-4.247 2.573-4.721 1.827-4.721C1.213-4.721 .704-4.4 .411-3.982L.697-3.578Z'/>
<path id='g0-52' d='M2.762-1.165H3.487V-1.625H2.762V-4.575H2.071L.209-1.625V-1.165H2.162V0H2.762V-1.165ZM.802-1.625C1.011-1.953 2.211-3.815 2.211-4.233V-1.625H.802Z'/>
<path id='g0-53' d='M1.144-4.094H3.075V-4.575H.586V-1.967H1.095C1.262-2.343 1.59-2.511 1.904-2.511C2.19-2.511 2.622-2.315 2.622-1.43C2.622-.516 2.043-.314 1.688-.314C1.227-.314 .781-.558 .544-.955L.279-.537C.621-.112 1.137 .146 1.688 .146C2.608 .146 3.327-.565 3.327-1.416C3.327-2.28 2.685-2.971 1.918-2.971C1.618-2.971 1.353-2.866 1.144-2.692V-4.094Z'/>
<path id='g0-54' d='M3.062-4.582C2.685-4.721 2.42-4.721 2.287-4.721C1.227-4.721 .307-3.724 .307-2.253C.307-.363 1.158 .146 1.862 .146C2.427 .146 2.72-.119 2.936-.342C3.382-.816 3.389-1.311 3.389-1.555C3.389-2.469 2.894-3.229 2.218-3.229C1.534-3.229 1.165-2.873 .962-2.671C1.053-3.626 1.541-4.289 2.294-4.289C2.434-4.289 2.713-4.275 3.062-4.142V-4.582ZM.969-1.534C.969-1.576 .969-1.681 .976-1.716C.976-2.19 1.276-2.769 1.897-2.769C2.748-2.769 2.748-1.792 2.748-1.555C2.748-1.29 2.748-.997 2.559-.704C2.392-.453 2.183-.314 1.862-.314C1.123-.314 1.004-1.227 .969-1.534Z'/>
<path id='g0-55' d='M1.723-4.038C1.806-4.038 1.89-4.045 1.974-4.045H2.852C1.792-3.006 1.116-1.548 1.116 .07H1.771C1.771-1.967 2.762-3.431 3.389-4.087V-4.575H.307V-4.038H1.723Z'/>
<path id='g0-56' d='M2.385-2.469C2.845-2.615 3.285-2.985 3.285-3.501C3.285-4.135 2.678-4.721 1.848-4.721S.411-4.135 .411-3.501C.411-2.978 .865-2.608 1.311-2.469C.697-2.28 .307-1.806 .307-1.269C.307-.523 .969 .146 1.848 .146S3.389-.523 3.389-1.269C3.389-1.806 2.992-2.28 2.385-2.469ZM1.848-2.699C1.353-2.699 .948-2.985 .948-3.494C.948-3.94 1.262-4.289 1.848-4.289C2.427-4.289 2.748-3.94 2.748-3.494C2.748-2.999 2.357-2.699 1.848-2.699ZM1.848-.314C1.367-.314 .941-.621 .941-1.276C.941-1.904 1.346-2.239 1.848-2.239S2.755-1.897 2.755-1.276C2.755-.621 2.322-.314 1.848-.314Z'/>
<path id='g0-57' d='M.537-.174C.879 .077 1.193 .146 1.52 .146C2.497 .146 3.389-.837 3.389-2.336C3.389-4.24 2.545-4.721 1.876-4.721C1.255-4.721 .969-4.428 .767-4.226C.321-3.773 .307-3.292 .307-3.02C.307-2.12 .795-1.346 1.478-1.346C2.267-1.346 2.699-1.869 2.734-1.911C2.636-.802 2.092-.314 1.52-.314C1.158-.314 .934-.446 .774-.579L.537-.174ZM2.713-3.027C2.72-2.985 2.72-2.915 2.72-2.873C2.72-2.357 2.406-1.806 1.799-1.806C1.534-1.806 1.325-1.883 1.144-2.169C.962-2.441 .948-2.706 .948-3.02C.948-3.292 .948-3.605 1.165-3.912C1.311-4.122 1.52-4.289 1.869-4.289C2.545-4.289 2.692-3.473 2.713-3.027Z'/>
<path id='g0-58' d='M1.339-3.096H.711V-2.469H1.339V-3.096ZM.711-.628V0H1.339V-.628H.711Z'/>
<path id='g0-64' d='M4.142-.614C4.038-.614 4.024-.614 3.968-.586C3.626-.467 3.271-.391 2.901-.391C1.778-.391 .976-1.339 .976-2.42C.976-3.592 1.883-4.449 2.859-4.449C3.055-4.449 3.515-4.4 3.745-3.843C3.55-3.954 3.333-4.003 3.152-4.003C2.406-4.003 1.778-3.306 1.778-2.42C1.778-1.513 2.427-.837 3.145-.837C3.689-.837 4.519-1.276 4.519-2.518C4.519-3.222 4.47-4.91 2.866-4.91C1.541-4.91 .411-3.815 .411-2.42C.411-1.039 1.527 .07 2.873 .07C3.515 .07 4.115-.195 4.519-.614H4.142ZM3.152-1.297C2.72-1.297 2.343-1.778 2.343-2.42C2.343-3.082 2.734-3.543 3.145-3.543C3.578-3.543 3.954-3.062 3.954-2.42C3.954-1.757 3.564-1.297 3.152-1.297Z'/>
<path id='g0-65' d='M2.803-4.84H2.127L.209 0H.781L1.325-1.381H3.445L3.989 0H4.721L2.803-4.84ZM2.392-4.31L3.271-1.792H1.499L2.392-4.31Z'/>
<path id='g0-67' d='M4.317-.851C3.829-.551 3.605-.418 2.908-.418C1.827-.418 1.172-1.43 1.172-2.434C1.172-3.466 1.89-4.435 2.908-4.435C3.368-4.435 3.843-4.289 4.163-4.045L4.275-4.679C3.787-4.861 3.396-4.917 2.887-4.917C1.506-4.917 .474-3.773 .474-2.427C.474-.99 1.569 .07 2.929 .07C3.612 .07 3.898-.07 4.359-.321L4.317-.851Z'/>
<path id='g0-71' d='M4.442-2.085H2.88V-1.625H3.829V-.558C3.522-.481 3.222-.418 2.908-.418C1.834-.418 1.172-1.43 1.172-2.427C1.172-3.382 1.82-4.435 2.873-4.435C3.515-4.435 3.919-4.24 4.268-3.947L4.38-4.582C3.898-4.812 3.473-4.924 2.943-4.924C1.534-4.924 .474-3.822 .474-2.427C.474-1.067 1.527 .07 2.901 .07C3.403 .07 3.996-.042 4.442-.272V-2.085Z'/>
<path id='g0-73' d='M1.381-4.84H.676V0H1.381V-4.84Z'/>
<path id='g0-78' d='M1.646-4.84H.697V0H1.283V-4.289H1.29L3.578 0H4.526V-4.84H3.94V-.551H3.933L1.646-4.84Z'/>
<path id='g0-79' d='M5.056-2.399C5.056-3.843 3.996-4.986 2.734-4.986S.411-3.843 .411-2.399S1.485 .146 2.734 .146C3.989 .146 5.056-.962 5.056-2.399ZM2.734-.349C1.89-.349 1.116-1.193 1.116-2.511C1.116-3.745 1.897-4.505 2.734-4.505S4.352-3.745 4.352-2.511C4.352-1.186 3.578-.349 2.734-.349Z'/>
<path id='g0-83' d='M3.445-4.645C2.999-4.875 2.601-4.986 2.085-4.986C1.032-4.986 .411-4.275 .411-3.605C.411-3.32 .502-2.985 .844-2.664C1.151-2.378 1.471-2.308 1.904-2.204C2.49-2.064 2.65-2.029 2.852-1.82C2.985-1.688 3.096-1.492 3.096-1.255C3.096-.823 2.706-.377 2.029-.377C1.632-.377 .99-.495 .439-.962L.328-.335C.676-.133 1.255 .146 2.036 .146C3.006 .146 3.696-.558 3.696-1.339C3.696-1.904 3.368-2.225 3.229-2.371C2.936-2.657 2.615-2.734 2.078-2.859C1.653-2.957 1.43-3.013 1.262-3.173C1.172-3.264 1.011-3.424 1.011-3.689C1.011-4.08 1.402-4.484 2.078-4.484C2.608-4.484 2.978-4.317 3.333-4.017L3.445-4.645Z'/>
<path id='g0-97' d='M2.971-2.008C2.971-2.72 2.427-3.201 1.736-3.201C1.297-3.201 .962-3.11 .572-2.901L.614-2.392C.844-2.545 1.186-2.755 1.736-2.755C2.043-2.755 2.364-2.525 2.364-2.001V-1.723C1.332-1.688 .314-1.471 .314-.823C.314-.474 .551 .07 1.165 .07C1.465 .07 2.015 .007 2.385-.265V0H2.971V-2.008ZM2.364-.99C2.364-.851 2.364-.669 2.12-.523C1.897-.398 1.625-.391 1.548-.391C1.165-.391 .872-.565 .872-.83C.872-1.276 2.05-1.318 2.364-1.332V-.99Z'/>
<path id='g0-98' d='M1.179-4.84H.593V0H1.2V-.328C1.353-.195 1.688 .07 2.197 .07C2.957 .07 3.571-.642 3.571-1.555C3.571-2.399 3.089-3.166 2.392-3.166C1.953-3.166 1.527-3.027 1.179-2.769V-4.84ZM1.2-2.197C1.2-2.308 1.2-2.392 1.444-2.552C1.548-2.615 1.736-2.706 1.974-2.706C2.441-2.706 2.964-2.392 2.964-1.555C2.964-.704 2.385-.391 1.897-.391C1.639-.391 1.395-.509 1.2-.823V-2.197Z'/>
<path id='g0-99' d='M3.034-.76C2.685-.537 2.308-.411 1.876-.411C1.234-.411 .858-.928 .858-1.555C.858-2.092 1.137-2.72 1.897-2.72C2.371-2.72 2.594-2.622 2.95-2.399L3.041-2.901C2.622-3.11 2.441-3.201 1.897-3.201C.851-3.201 .251-2.357 .251-1.548C.251-.697 .921 .07 1.869 .07C2.357 .07 2.776-.077 3.075-.251L3.034-.76Z'/>
<path id='g0-100' d='M3.229-4.84H2.643V-2.797C2.197-3.124 1.743-3.166 1.541-3.166C.809-3.166 .251-2.434 .251-1.548S.802 .07 1.52 .07C1.953 .07 2.357-.126 2.622-.363V0H3.229V-4.84ZM2.622-.865C2.448-.579 2.183-.391 1.848-.391C1.36-.391 .858-.732 .858-1.541C.858-2.413 1.451-2.706 1.925-2.706C2.204-2.706 2.441-2.587 2.622-2.35V-.865Z'/>
<path id='g0-101' d='M2.999-.76C2.608-.481 2.169-.391 1.869-.391C1.262-.391 .802-.886 .781-1.527H3.068C3.068-1.848 3.034-2.315 2.762-2.713C2.511-3.068 2.092-3.201 1.75-3.201C.9-3.201 .244-2.455 .244-1.569C.244-.676 .941 .07 1.862 .07C2.267 .07 2.685-.049 3.041-.265L2.999-.76ZM.83-1.946C.99-2.504 1.402-2.741 1.75-2.741C2.057-2.741 2.511-2.594 2.643-1.946H.83Z'/>
<path id='g0-102' d='M1.325-2.657H2.12V-3.096H1.304V-3.898C1.304-4.38 1.743-4.449 1.974-4.449C2.12-4.449 2.308-4.428 2.566-4.331V-4.84C2.385-4.882 2.169-4.91 1.981-4.91C1.262-4.91 .739-4.394 .739-3.703V-3.096H.202V-2.657H.739V0H1.325V-2.657Z'/>
<path id='g0-103' d='M3.508-3.166C3.354-3.166 2.887-3.159 2.357-2.957L2.343-2.95C2.092-3.117 1.848-3.166 1.646-3.166C.962-3.166 .453-2.629 .453-2.029C.453-1.785 .537-1.534 .697-1.339C.6-1.22 .495-1.025 .495-.76C.495-.488 .607-.314 .669-.23C.286-.007 .209 .314 .209 .481C.209 1.011 .941 1.43 1.848 1.43C2.762 1.43 3.487 1.011 3.487 .481C3.487-.502 2.267-.502 1.967-.502H1.318C1.206-.502 .907-.502 .907-.865C.907-1.004 .955-1.074 .962-1.088C1.206-.934 1.451-.886 1.639-.886C2.322-.886 2.831-1.423 2.831-2.022C2.831-2.246 2.769-2.448 2.643-2.636C2.615-2.678 2.615-2.685 2.615-2.692C2.615-2.72 3.034-2.72 3.068-2.72C3.075-2.72 3.34-2.72 3.592-2.692L3.508-3.166ZM1.646-1.318C1.269-1.318 .99-1.555 .99-2.022C.99-2.566 1.339-2.734 1.639-2.734C2.015-2.734 2.294-2.497 2.294-2.029C2.294-1.485 1.946-1.318 1.646-1.318ZM1.974 .042C2.134 .042 2.957 .042 2.957 .488C2.957 .788 2.434 .997 1.848 .997S.739 .788 .739 .488C.739 .453 .739 .042 1.304 .042H1.974Z'/>
<path id='g0-104' d='M3.243-2.064C3.243-2.608 3.082-3.166 2.225-3.166C1.625-3.166 1.304-2.817 1.165-2.671V-4.84H.579V0H1.186V-1.695C1.186-2.155 1.381-2.706 1.918-2.706C2.636-2.706 2.636-2.218 2.636-2.015V0H3.243V-2.064Z'/>
<path id='g0-105' d='M1.227-4.784H.523V-4.08H1.227V-4.784ZM1.172-3.096H.586V0H1.172V-3.096Z'/>
<path id='g0-106' d='M1.381-4.784H.676V-4.08H1.381V-4.784ZM-.453 1.186C-.133 1.36 .181 1.423 .446 1.423C.928 1.423 1.381 1.053 1.381 .411V-3.096H.795V.46C.795 .586 .795 .697 .649 .816C.488 .934 .293 .934 .23 .934C-.063 .934-.244 .802-.328 .725L-.453 1.186Z'/>
<path id='g0-108' d='M1.172-4.84H.586V0H1.172V-4.84Z'/>
<path id='g0-109' d='M5.3-2.064C5.3-2.608 5.14-3.166 4.282-3.166C3.696-3.166 3.333-2.824 3.166-2.601C3.096-2.79 2.922-3.166 2.225-3.166C1.827-3.166 1.444-3.006 1.137-2.636V-3.145H.579V0H1.186V-1.695C1.186-2.155 1.381-2.706 1.918-2.706C2.636-2.706 2.636-2.218 2.636-2.015V0H3.243V-1.695C3.243-2.155 3.438-2.706 3.975-2.706C4.693-2.706 4.693-2.218 4.693-2.015V0H5.3V-2.064Z'/>
<path id='g0-110' d='M3.243-2.064C3.243-2.608 3.082-3.166 2.225-3.166C1.827-3.166 1.444-3.006 1.137-2.636V-3.145H.579V0H1.186V-1.695C1.186-2.155 1.381-2.706 1.918-2.706C2.636-2.706 2.636-2.218 2.636-2.015V0H3.243V-2.064Z'/>
<path id='g0-111' d='M3.487-1.527C3.487-2.448 2.755-3.201 1.848-3.201S.209-2.441 .209-1.527C.209-.642 .948 .07 1.848 .07C2.755 .07 3.487-.642 3.487-1.527ZM1.848-.411C1.297-.411 .816-.816 .816-1.604S1.332-2.741 1.848-2.741C2.371-2.741 2.88-2.378 2.88-1.604C2.88-.809 2.385-.411 1.848-.411Z'/>
<path id='g0-112' d='M1.2-.328C1.569 .007 1.967 .07 2.204 .07C2.943 .07 3.571-.635 3.571-1.555C3.571-2.392 3.11-3.166 2.42-3.166C2.106-3.166 1.583-3.075 1.179-2.762V-3.096H.593V1.353H1.2V-.328ZM1.2-2.315C1.36-2.511 1.632-2.685 1.967-2.685C2.525-2.685 2.964-2.169 2.964-1.555C2.964-.865 2.441-.391 1.897-.391C1.792-.391 1.618-.404 1.437-.551C1.227-.711 1.2-.816 1.2-.948V-2.315Z'/>
<path id='g0-114' d='M1.179-1.485C1.179-2.239 1.806-2.643 2.42-2.65V-3.166C1.834-3.159 1.409-2.873 1.13-2.504V-3.145H.593V0H1.179V-1.485Z'/>
<path id='g0-115' d='M2.545-2.985C2.071-3.18 1.723-3.201 1.471-3.201C1.297-3.201 .244-3.201 .244-2.273C.244-1.946 .425-1.764 .516-1.681C.76-1.437 1.053-1.381 1.423-1.311C1.75-1.248 2.127-1.179 2.127-.844C2.127-.404 1.548-.404 1.451-.404C1.004-.404 .586-.565 .307-.76L.209-.237C.446-.119 .872 .07 1.451 .07C1.764 .07 2.071 .021 2.329-.167C2.587-.363 2.671-.669 2.671-.907C2.671-1.032 2.657-1.304 2.364-1.569C2.106-1.799 1.855-1.848 1.52-1.911C1.109-1.988 .788-2.05 .788-2.357C.788-2.755 1.297-2.755 1.402-2.755C1.799-2.755 2.106-2.671 2.455-2.49L2.545-2.985Z'/>
<path id='g0-116' d='M1.311-2.657H2.343V-3.096H1.311V-3.982H.774V-3.096H.139V-2.657H.753V-.893C.753-.425 .872 .07 1.374 .07S2.26-.091 2.469-.188L2.35-.635C2.12-.467 1.876-.411 1.681-.411C1.388-.411 1.311-.697 1.311-1.018V-2.657Z'/>
<path id='g0-119' d='M4.951-3.096H4.407C4.345-2.901 3.954-1.723 3.738-.997C3.682-.795 3.612-.572 3.592-.411H3.585C3.543-.697 3.299-1.451 3.285-1.499L2.769-3.096H2.239C2.036-2.497 1.513-.934 1.458-.425H1.451C1.395-.921 .879-2.462 .767-2.797C.711-2.964 .711-2.978 .676-3.096H.105L1.123 0H1.709C1.716-.028 1.904-.579 2.148-1.353C2.253-1.695 2.462-2.364 2.497-2.671L2.504-2.678C2.518-2.532 2.559-2.378 2.608-2.204S2.706-1.841 2.755-1.681L3.292 0H3.933L4.951-3.096Z'/>
<path id='g0-120' d='M1.932-1.597L3.285-3.096H2.671L1.681-1.953L.669-3.096H.042L1.437-1.597L0 0H.621L1.681-1.311L2.783 0H3.41L1.932-1.597Z'/>
<path id='g0-121' d='M3.306-3.096H2.741C2.176-1.764 1.785-.865 1.757-.439C1.743-.635 1.618-.983 1.492-1.311C1.381-1.59 1.269-1.869 1.144-2.141L.704-3.096H.105L1.548 0C1.465 .202 1.325 .523 1.283 .614C1.137 .907 1.039 1.004 .851 1.004C.823 1.004 .565 1.004 .265 .879L.307 1.367C.37 1.381 .628 1.423 .844 1.423C1.123 1.423 1.374 1.318 1.667 .649L3.306-3.096Z'/>
<path id='g0-122' d='M2.957-2.803V-3.096H.307V-2.65H1.332C1.416-2.65 1.499-2.657 1.583-2.657H2.127L.209-.307V0H2.978V-.467H1.897C1.813-.467 1.73-.46 1.646-.46H1.039L2.957-2.803Z'/>
</defs>
<g id='page1'>
<path d='M139.344 212.797V203.938M196.539 212.797V203.938M253.734 212.797V203.938M310.926 212.797V203.938M139.344 69.836V78.692M196.539 69.836V78.692M253.734 69.836V78.692M310.926 69.836V78.692' stroke='#808080' fill='none' stroke-width='.199' stroke-miterlimit='10'/>
<path d='M110.746 208.192V203.938M167.941 208.192V203.938M225.137 208.192V203.938M282.332 208.192V203.938M339.524 208.192V203.938M110.746 74.442V78.692M167.941 74.442V78.692M225.137 74.442V78.692M282.332 74.442V78.692M339.524 74.442V78.692' stroke='#808080' fill='none' stroke-width='.199' stroke-miterlimit='10'/>
<path d='M82.148 203.938H86.402M82.148 172.629H86.402M82.148 141.317H86.402M82.148 110.004H86.402M82.148 78.692H86.402M368.121 203.938H363.871M368.121 172.629H363.871M368.121 141.317H363.871M368.121 110.004H363.871M368.121 78.692H363.871' stroke='#808080' fill='none' stroke-width='.199' stroke-miterlimit='10'/>
<path d='M82.148 203.938V78.692H368.121V203.938H82.148Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10'/>
<g transform='matrix(1 0 0 1 -12.278 72.902)'>
<use x='114.487' y='145.434' xlink:href='#g3-99'/>
<use x='118.25' y='145.434' xlink:href='#g3-102'/>
<use x='120.838' y='145.434' xlink:href='#g3-114'/>
<use x='123.73' y='145.434' xlink:href='#g3-97'/>
<use x='127.798' y='145.434' xlink:href='#g3-99'/>
</g>
<g transform='matrix(1 0 0 1 43.353 72.902)'>
<use x='114.487' y='145.434' xlink:href='#g3-108'/>
<use x='116.507' y='145.434' xlink:href='#g3-101'/>
<use x='120.271' y='145.434' xlink:href='#g3-97'/>
<use x='124.339' y='145.434' xlink:href='#g3-110'/>
<use x='128.711' y='145.434' xlink:href='#g3-78'/>
</g>
<g transform='matrix(1 0 0 1 97.361 72.902)'>
<use x='114.487' y='145.434' xlink:href='#g3-108'/>
<use x='116.507' y='145.434' xlink:href='#g3-97'/>
<use x='120.34' y='145.434' xlink:href='#g3-114'/>
<use x='123.232' y='145.434' xlink:href='#g3-115'/>
<use x='126.478' y='145.434' xlink:href='#g3-111'/>
<use x='130.712' y='145.434' xlink:href='#g3-110'/>
<use x='135.085' y='145.434' xlink:href='#g3-78'/>
</g>
<g transform='matrix(1 0 0 1 151.766 72.902)'>
<use x='114.487' y='145.434' xlink:href='#g3-109'/>
<use x='121.211' y='145.434' xlink:href='#g3-115'/>
<use x='124.458' y='145.434' xlink:href='#g3-116'/>
<use x='127.516' y='145.434' xlink:href='#g3-114'/>
<use x='130.408' y='145.434' xlink:href='#g3-101'/>
<use x='134.171' y='145.434' xlink:href='#g3-115'/>
<use x='137.418' y='145.434' xlink:href='#g3-115'/>
<use x='140.664' y='145.434' xlink:href='#g3-78'/>
</g>
<g transform='matrix(1 0 0 1 200.59 72.902)'>
<use x='114.487' y='145.434' xlink:href='#g3-120'/>
<use x='118.389' y='145.434' xlink:href='#g3-109'/>
<use x='125.114' y='145.434' xlink:href='#g3-97'/>
<use x='129.182' y='145.434' xlink:href='#g3-108'/>
<use x='131.202' y='145.434' xlink:href='#g3-108'/>
<use x='133.222' y='145.434' xlink:href='#g3-111'/>
<use x='137.692' y='145.434' xlink:href='#g3-99'/>
<use x='141.455' y='145.434' xlink:href='#g3-45'/>
<use x='144.278' y='145.434' xlink:href='#g3-116'/>
<use x='147.336' y='145.434' xlink:href='#g3-101'/>
<use x='151.1' y='145.434' xlink:href='#g3-115'/>
<use x='154.346' y='145.434' xlink:href='#g3-116'/>
<use x='157.404' y='145.434' xlink:href='#g3-78'/>
</g>
<g transform='matrix(1 0 0 1 -40.942 60.139)'>
<use x='114.487' y='145.434' xlink:href='#g2-48'/>
<use x='117.133' y='145.434' xlink:href='#g2-120'/>
</g>
<g transform='matrix(1 0 0 1 -45.059 28.828)'>
<use x='114.487' y='145.434' xlink:href='#g2-48'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-53'/>
<use x='121.25' y='145.434' xlink:href='#g2-120'/>
</g>
<g transform='matrix(1 0 0 1 -45.059 -2.484)'>
<use x='114.487' y='145.434' xlink:href='#g2-49'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-48'/>
<use x='121.25' y='145.434' xlink:href='#g2-120'/>
</g>
<g transform='matrix(1 0 0 1 -45.059 -33.795)'>
<use x='114.487' y='145.434' xlink:href='#g2-49'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-53'/>
<use x='121.25' y='145.434' xlink:href='#g2-120'/>
</g>
<g transform='matrix(1 0 0 1 -45.059 -65.107)'>
<use x='114.487' y='145.434' xlink:href='#g2-50'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-48'/>
<use x='121.25' y='145.434' xlink:href='#g2-120'/>
</g>
<path d='M82.148 141.317H368.121' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M96.051 203.938H99.289V141.317H96.051ZM153.246 203.938H156.484V141.317H153.246ZM210.442 203.938H213.68V141.317H210.442ZM267.637 203.938H270.875V141.317H267.637ZM324.828 203.938H328.067V141.317H324.828Z' fill='#933' clip-path='url(#clip1)'/>
<path d='M96.051 203.938H99.289V141.317H96.051ZM153.246 203.938H156.484V141.317H153.246ZM210.442 203.938H213.68V141.317H210.442ZM267.637 203.938H270.875V141.317H267.637ZM324.828 203.938H328.067V141.317H324.828Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M97.672 141.317' fill='#933' clip-path='url(#clip1)'/>
<path d='M95.68 141.317H99.664' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M97.672 141.317' fill='#933' clip-path='url(#clip1)'/>
<path d='M95.68 141.317H99.664' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M154.867 141.317V141.067' fill='#933' clip-path='url(#clip1)'/>
<path d='M154.867 141.317V141.067' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M152.871 141.066H156.859' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M154.867 141.317V141.567' fill='#933' clip-path='url(#clip1)'/>
<path d='M154.867 141.317V141.567' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M156.86 141.566H152.875' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M212.059 141.317V141.067' fill='#933' clip-path='url(#clip1)'/>
<path d='M212.059 141.317V141.067' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M210.066 141.066H214.05' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M212.059 141.317V141.567' fill='#933' clip-path='url(#clip1)'/>
<path d='M212.059 141.317V141.567' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M214.054 141.566H210.066' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M269.254 141.317V141.254' fill='#933' clip-path='url(#clip1)'/>
<path d='M269.254 141.317V141.254' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M267.262 141.254H271.246' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M269.254 141.317V141.379' fill='#933' clip-path='url(#clip1)'/>
<path d='M269.254 141.317V141.379' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M271.246 141.379H267.262' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M326.449 141.317V141.067' fill='#933' clip-path='url(#clip1)'/>
<path d='M326.449 141.317V141.067' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M324.457 141.066H328.441' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M326.449 141.317V141.567' fill='#933' clip-path='url(#clip1)'/>
<path d='M326.449 141.317V141.567' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M328.441 141.566H324.457' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M101.281 203.938H104.52V142.067H101.281ZM158.477 203.938H161.715V140.817H158.477ZM215.672 203.938H218.91V143.696H215.672ZM272.867 203.938H276.106V141.442H272.867ZM330.059 203.938H333.297V138.122H330.059Z' fill='#bf8080' clip-path='url(#clip1)'/>
<path d='M101.281 203.938H104.52V142.067H101.281ZM158.477 203.938H161.715V140.817H158.477ZM215.672 203.938H218.91V143.696H215.672ZM272.867 203.938H276.106V141.442H272.867ZM330.059 203.938H333.297V138.122H330.059Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M102.902 142.067' fill='#bf8080' clip-path='url(#clip1)'/>
<path d='M100.91 142.066H104.895' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M102.902 142.067' fill='#bf8080' clip-path='url(#clip1)'/>
<path d='M100.91 142.066H104.895' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M160.098 140.817V140.563' fill='#bf8080' clip-path='url(#clip1)'/>
<path d='M160.098 140.817V140.563' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M158.101 140.562H162.089' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M160.098 140.817V141.067' fill='#bf8080' clip-path='url(#clip1)'/>
<path d='M160.098 140.817V141.067' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M162.09 141.066H158.105' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M217.289 143.696V143.508' fill='#bf8080' clip-path='url(#clip1)'/>
<path d='M217.289 143.696V143.508' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M215.297 143.507H219.282' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M217.289 143.696V143.883' fill='#bf8080' clip-path='url(#clip1)'/>
<path d='M217.289 143.696V143.883' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M219.285 143.883H215.297' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M274.484 141.442' fill='#bf8080' clip-path='url(#clip1)'/>
<path d='M272.492 141.442H276.476' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M274.484 141.442' fill='#bf8080' clip-path='url(#clip1)'/>
<path d='M272.492 141.442H276.476' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M331.68 138.122V138.059' fill='#bf8080' clip-path='url(#clip1)'/>
<path d='M331.68 138.122V138.059' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M329.688 138.058H333.672' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M331.68 138.122V138.184' fill='#bf8080' clip-path='url(#clip1)'/>
<path d='M331.68 138.122V138.184' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M333.671 138.183H329.687' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M106.512 203.938H109.75V122.028H106.512ZM163.707 203.938H166.945V128.918H163.707ZM220.902 203.938H224.141V119.961H220.902ZM278.098 203.938H281.336V139.375H278.098ZM335.289 203.938H338.527V78.692H335.289Z' fill='#8080bf' clip-path='url(#clip1)'/>
<path d='M106.512 203.938H109.75V122.028H106.512ZM163.707 203.938H166.945V128.918H163.707ZM220.902 203.938H224.141V119.961H220.902ZM278.098 203.938H281.336V139.375H278.098ZM335.289 203.938H338.527V78.692H335.289Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M108.133 122.028' fill='#8080bf' clip-path='url(#clip1)'/>
<path d='M106.14 122.028H110.125' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M108.133 122.028' fill='#8080bf' clip-path='url(#clip1)'/>
<path d='M106.14 122.028H110.125' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M165.328 128.918V128.856' fill='#8080bf' clip-path='url(#clip1)'/>
<path d='M165.328 128.918V128.856' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M163.332 128.856H167.317' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M165.328 128.918V128.981' fill='#8080bf' clip-path='url(#clip1)'/>
<path d='M165.328 128.918V128.981' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M167.321 128.981H163.336' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M222.52 119.961V119.836' fill='#8080bf' clip-path='url(#clip1)'/>
<path d='M222.52 119.961V119.836' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M220.527 119.836H224.512' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M222.52 119.961V120.086' fill='#8080bf' clip-path='url(#clip1)'/>
<path d='M222.52 119.961V120.086' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M224.512 120.086H220.527' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M279.715 139.375V139.125' fill='#8080bf' clip-path='url(#clip1)'/>
<path d='M279.715 139.375V139.125' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M277.723 139.125H281.707' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M279.715 139.375V139.625' fill='#8080bf' clip-path='url(#clip1)'/>
<path d='M279.715 139.375V139.625' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M281.708 139.625H277.723' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M336.91 78.692' fill='#8080bf' clip-path='url(#clip1)'/>
<path d='M334.918 78.691H338.902' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M336.91 78.692' fill='#8080bf' clip-path='url(#clip1)'/>
<path d='M334.918 78.691H338.902' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M111.742 203.938H114.981V120.086H111.742ZM168.938 203.938H172.176V136.43H168.938ZM226.133 203.938H229.371V136.809H226.133ZM283.328 203.938H286.567V78.692H283.328ZM340.52 203.938H343.758V112.571H340.52Z' fill='#ffb733' clip-path='url(#clip1)'/>
<path d='M111.742 203.938H114.981V120.086H111.742ZM168.938 203.938H172.176V136.43H168.938ZM226.133 203.938H229.371V136.809H226.133ZM283.328 203.938H286.567V78.692H283.328ZM340.52 203.938H343.758V112.571H340.52Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M113.363 120.086V119.899' fill='#ffb733' clip-path='url(#clip1)'/>
<path d='M113.363 120.086V119.899' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M111.371 119.899H115.356' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M113.363 120.086V120.274' fill='#ffb733' clip-path='url(#clip1)'/>
<path d='M113.363 120.086V120.274' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M115.356 120.273H111.371' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M170.559 136.43' fill='#ffb733' clip-path='url(#clip1)'/>
<path d='M168.562 136.43H172.547' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M170.559 136.43' fill='#ffb733' clip-path='url(#clip1)'/>
<path d='M168.562 136.43H172.547' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M227.75 136.809' fill='#ffb733' clip-path='url(#clip1)'/>
<path d='M225.758 136.809H229.743' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M227.75 136.809' fill='#ffb733' clip-path='url(#clip1)'/>
<path d='M225.758 136.809H229.743' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M284.945 78.692' fill='#ffb733' clip-path='url(#clip1)'/>
<path d='M282.953 78.691H286.937' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M284.945 78.692' fill='#ffb733' clip-path='url(#clip1)'/>
<path d='M282.953 78.691H286.937' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M342.141 112.571V112.383' fill='#ffb733' clip-path='url(#clip1)'/>
<path d='M342.141 112.571V112.383' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M340.149 112.383H344.133' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M342.141 112.571V112.758' fill='#ffb733' clip-path='url(#clip1)'/>
<path d='M342.141 112.571V112.758' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M344.132 112.757H340.148' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M116.973 203.938H120.211V137.059H116.973ZM174.168 203.938H177.406V131.235H174.168ZM231.363 203.938H234.602V78.692H231.363ZM288.559 203.938H291.797V79.696H288.559ZM345.75 203.938H348.988V78.692H345.75Z' fill='#80bf80' clip-path='url(#clip1)'/>
<path d='M116.973 203.938H120.211V137.059H116.973ZM174.168 203.938H177.406V131.235H174.168ZM231.363 203.938H234.602V78.692H231.363ZM288.559 203.938H291.797V79.696H288.559ZM345.75 203.938H348.988V78.692H345.75Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M118.594 137.059V136.809' fill='#80bf80' clip-path='url(#clip1)'/>
<path d='M118.594 137.059V136.809' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M116.601 136.809H120.586' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M118.594 137.059V137.309' fill='#80bf80' clip-path='url(#clip1)'/>
<path d='M118.594 137.059V137.309' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M120.586 137.309H116.601' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M175.789 131.235V131.047' fill='#80bf80' clip-path='url(#clip1)'/>
<path d='M175.789 131.235V131.047' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M173.793 131.046H177.778' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M175.789 131.235V131.422' fill='#80bf80' clip-path='url(#clip1)'/>
<path d='M175.789 131.235V131.422' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M177.782 131.422H173.797' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M232.981 78.692' fill='#80bf80' clip-path='url(#clip1)'/>
<path d='M230.988 78.691H234.973' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M232.981 78.692' fill='#80bf80' clip-path='url(#clip1)'/>
<path d='M230.988 78.691H234.973' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M290.176 79.696V79.383' fill='#80bf80' clip-path='url(#clip1)'/>
<path d='M290.176 79.696V79.383' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M288.184 79.383H292.168' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M290.176 79.696V80.008' fill='#80bf80' clip-path='url(#clip1)'/>
<path d='M290.176 79.696V80.008' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M292.168 80.008H288.183' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M347.371 78.692' fill='#80bf80' clip-path='url(#clip1)'/>
<path d='M345.379 78.691H349.363' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M347.371 78.692' fill='#80bf80' clip-path='url(#clip1)'/>
<path d='M345.379 78.691H349.363' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M122.203 203.938H125.441V78.692H122.203ZM179.399 203.938H182.637V93.286H179.399ZM236.594 203.938H239.832V78.692H236.594ZM293.789 203.938H297.024V78.692H293.789ZM350.981 203.938H354.219V78.692H350.981Z' fill='#399' clip-path='url(#clip1)'/>
<path d='M122.203 203.938H125.441V78.692H122.203ZM179.399 203.938H182.637V93.286H179.399ZM236.594 203.938H239.832V78.692H236.594ZM293.789 203.938H297.024V78.692H293.789ZM350.981 203.938H354.219V78.692H350.981Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M123.824 78.692' fill='#399' clip-path='url(#clip1)'/>
<path d='M121.832 78.691H125.817' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M123.824 78.692' fill='#399' clip-path='url(#clip1)'/>
<path d='M121.832 78.691H125.817' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M181.02 93.286V93.161' fill='#399' clip-path='url(#clip1)'/>
<path d='M181.02 93.286V93.161' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M179.023 93.16H183.008' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M181.02 93.286V93.411' fill='#399' clip-path='url(#clip1)'/>
<path d='M181.02 93.286V93.411' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M183.012 93.41H179.027' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M238.211 78.692' fill='#399' clip-path='url(#clip1)'/>
<path d='M236.219 78.691H240.204' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M238.211 78.692' fill='#399' clip-path='url(#clip1)'/>
<path d='M236.219 78.691H240.204' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M295.406 78.692' fill='#399' clip-path='url(#clip1)'/>
<path d='M293.414 78.691H297.398' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M295.406 78.692' fill='#399' clip-path='url(#clip1)'/>
<path d='M293.414 78.691H297.398' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M352.602 78.692' fill='#399' clip-path='url(#clip1)'/>
<path d='M350.609 78.691H354.593' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M352.602 78.692' fill='#399' clip-path='url(#clip1)'/>
<path d='M350.609 78.691H354.593' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<path d='M263.02 263.2H367.922V229.188H263.02Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10' clip-path='url(#clip1)'/>
<g transform='matrix(1 0 0 1 151.853 114.444)'>
<use x='114.487' y='121.524' xlink:href='#g2-109'/>
<use x='118.69' y='121.524' xlink:href='#g2-97'/>
<use x='121.232' y='121.524' xlink:href='#g2-99'/>
<use x='125.349' y='121.524' xlink:href='#g2-109'/>
<use x='129.552' y='121.524' xlink:href='#g2-105'/>
<use x='130.814' y='121.524' xlink:href='#g2-110'/>
<use x='133.547' y='121.524' xlink:href='#g2-105'/>
<use x='134.81' y='121.524' xlink:href='#g2-44'/>
<use x='138.044' y='121.524' xlink:href='#g2-49'/>
<use x='140.691' y='121.524' xlink:href='#g2-54'/>
<use x='143.337' y='121.524' xlink:href='#g2-71'/>
<use x='146.866' y='121.524' xlink:href='#g2-98'/>
<use x='114.487' y='127.501' xlink:href='#g2-52'/>
<use x='117.133' y='127.501' xlink:href='#g2-45'/>
<use x='118.897' y='127.501' xlink:href='#g2-99'/>
<use x='121.25' y='127.501' xlink:href='#g2-111'/>
<use x='123.749' y='127.501' xlink:href='#g2-114'/>
<use x='125.556' y='127.501' xlink:href='#g2-101'/>
<use x='129.673' y='127.501' xlink:href='#g2-73'/>
<use x='131.143' y='127.501' xlink:href='#g2-110'/>
<use x='133.876' y='127.501' xlink:href='#g2-116'/>
<use x='135.787' y='127.501' xlink:href='#g2-101'/>
<use x='138.14' y='127.501' xlink:href='#g2-108'/>
<use x='141.166' y='127.501' xlink:href='#g2-105'/>
<use x='142.429' y='127.501' xlink:href='#g2-51'/>
<use x='146.84' y='127.501' xlink:href='#g2-64'/>
<use x='150.368' y='127.501' xlink:href='#g2-51'/>
<use x='153.015' y='127.501' xlink:href='#g2-46'/>
<use x='154.485' y='127.501' xlink:href='#g2-54'/>
<use x='157.131' y='127.501' xlink:href='#g2-71'/>
<use x='160.66' y='127.501' xlink:href='#g2-104'/>
<use x='163.392' y='127.501' xlink:href='#g2-122'/>
<use x='114.487' y='133.479' xlink:href='#g2-109'/>
<use x='118.69' y='133.479' xlink:href='#g2-97'/>
<use x='121.232' y='133.479' xlink:href='#g2-99'/>
<use x='123.585' y='133.479' xlink:href='#g2-79'/>
<use x='127.494' y='133.479' xlink:href='#g2-83'/>
<use x='132.198' y='133.479' xlink:href='#g2-67'/>
<use x='135.58' y='133.479' xlink:href='#g2-97'/>
<use x='138.122' y='133.479' xlink:href='#g2-116'/>
<use x='140.034' y='133.479' xlink:href='#g2-97'/>
<use x='142.576' y='133.479' xlink:href='#g2-108'/>
<use x='143.839' y='133.479' xlink:href='#g2-105'/>
<use x='145.101' y='133.479' xlink:href='#g2-110'/>
<use x='147.834' y='133.479' xlink:href='#g2-97'/>
<use x='152.141' y='133.479' xlink:href='#g2-49'/>
<use x='154.787' y='133.479' xlink:href='#g2-48'/>
<use x='157.434' y='133.479' xlink:href='#g2-46'/>
<use x='158.904' y='133.479' xlink:href='#g2-49'/>
<use x='161.55' y='133.479' xlink:href='#g2-53'/>
<use x='164.197' y='133.479' xlink:href='#g2-46'/>
<use x='165.667' y='133.479' xlink:href='#g2-55'/>
<use x='168.313' y='133.479' xlink:href='#g2-44'/>
<use x='171.548' y='133.479' xlink:href='#g2-65'/>
<use x='175.076' y='133.479' xlink:href='#g2-112'/>
<use x='177.809' y='133.479' xlink:href='#g2-112'/>
<use x='180.542' y='133.479' xlink:href='#g2-108'/>
<use x='181.805' y='133.479' xlink:href='#g2-101'/>
<use x='185.921' y='133.479' xlink:href='#g2-99'/>
<use x='188.273' y='133.479' xlink:href='#g2-108'/>
<use x='189.536' y='133.479' xlink:href='#g2-97'/>
<use x='192.079' y='133.479' xlink:href='#g2-110'/>
<use x='194.812' y='133.479' xlink:href='#g2-103'/>
<use x='199.222' y='133.479' xlink:href='#g2-49'/>
<use x='201.868' y='133.479' xlink:href='#g2-49'/>
<use x='204.515' y='133.479' xlink:href='#g2-46'/>
<use x='205.985' y='133.479' xlink:href='#g2-48'/>
<use x='208.631' y='133.479' xlink:href='#g2-46'/>
<use x='210.102' y='133.479' xlink:href='#g2-51'/>
<use x='114.487' y='139.456' xlink:href='#g2-56'/>
<use x='118.897' y='139.456' xlink:href='#g2-108'/>
<use x='120.16' y='139.456' xlink:href='#g2-111'/>
<use x='122.806' y='139.456' xlink:href='#g2-103'/>
<use x='125.453' y='139.456' xlink:href='#g2-105'/>
<use x='126.715' y='139.456' xlink:href='#g2-99'/>
<use x='129.068' y='139.456' xlink:href='#g2-97'/>
<use x='131.61' y='139.456' xlink:href='#g2-108'/>
<use x='134.637' y='139.456' xlink:href='#g2-99'/>
<use x='136.989' y='139.456' xlink:href='#g2-111'/>
<use x='139.489' y='139.456' xlink:href='#g2-114'/>
<use x='141.296' y='139.456' xlink:href='#g2-101'/>
<use x='143.648' y='139.456' xlink:href='#g2-115'/>
<use x='114.487' y='145.434' xlink:href='#g2-50'/>
<use x='117.133' y='145.434' xlink:href='#g2-48'/>
<use x='119.779' y='145.434' xlink:href='#g2-50'/>
<use x='122.426' y='145.434' xlink:href='#g2-49'/>
<use x='125.072' y='145.434' xlink:href='#g2-45'/>
<use x='126.836' y='145.434' xlink:href='#g2-48'/>
<use x='129.483' y='145.434' xlink:href='#g2-49'/>
<use x='132.129' y='145.434' xlink:href='#g2-45'/>
<use x='133.893' y='145.434' xlink:href='#g2-51'/>
<use x='136.54' y='145.434' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 -46.129 249.778)'>
<use x='114.487' y='145.434' xlink:href='#g2-49'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-48'/>
<use x='121.25' y='145.434' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 11.066 249.778)'>
<use x='114.487' y='145.434' xlink:href='#g2-49'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-48'/>
<use x='121.25' y='145.434' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 68.26 249.778)'>
<use x='114.487' y='145.434' xlink:href='#g2-49'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-48'/>
<use x='121.25' y='145.434' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 125.455 249.778)'>
<use x='114.487' y='145.434' xlink:href='#g2-49'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-48'/>
<use x='121.25' y='145.434' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 182.649 249.778)'>
<use x='114.487' y='145.434' xlink:href='#g2-49'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-48'/>
<use x='121.25' y='145.434' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 -40.898 250.529)'>
<use x='114.487' y='145.434' xlink:href='#g2-48'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-57'/>
<use x='121.25' y='145.434' xlink:href='#g2-57'/>
</g>
<g transform='matrix(0 -1 1 0 16.296 249.277)'>
<use x='114.487' y='145.434' xlink:href='#g2-49'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-48'/>
<use x='121.25' y='145.434' xlink:href='#g2-49'/>
</g>
<g transform='matrix(0 -1 1 0 73.491 252.158)'>
<use x='114.487' y='145.434' xlink:href='#g2-48'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-57'/>
<use x='121.25' y='145.434' xlink:href='#g2-54'/>
</g>
<g transform='matrix(0 -1 1 0 130.685 249.903)'>
<use x='114.487' y='145.434' xlink:href='#g2-49'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-48'/>
<use x='121.25' y='145.434' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 187.88 246.584)'>
<use x='114.487' y='145.434' xlink:href='#g2-49'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-48'/>
<use x='121.25' y='145.434' xlink:href='#g2-53'/>
</g>
<g transform='matrix(0 -1 1 0 -35.668 230.49)'>
<use x='114.487' y='145.434' xlink:href='#g2-49'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-51'/>
<use x='121.25' y='145.434' xlink:href='#g2-49'/>
</g>
<g transform='matrix(0 -1 1 0 21.527 237.378)'>
<use x='114.487' y='145.434' xlink:href='#g2-49'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-50'/>
<use x='121.25' y='145.434' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 78.721 228.423)'>
<use x='114.487' y='145.434' xlink:href='#g2-49'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-51'/>
<use x='121.25' y='145.434' xlink:href='#g2-52'/>
</g>
<g transform='matrix(0 -1 1 0 135.916 247.837)'>
<use x='114.487' y='145.434' xlink:href='#g2-49'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-48'/>
<use x='121.25' y='145.434' xlink:href='#g2-51'/>
</g>
<g transform='matrix(0 -1 1 0 193.11 187.155)'>
<use x='109.598' y='145.434' xlink:href='#g4-1'/>
<use x='113.103' y='145.434' xlink:href='#g4-1'/>
<use x='116.608' y='145.434' xlink:href='#g4-1'/>
<use x='120.114' y='145.434' xlink:href='#g2-53'/>
<use x='122.76' y='145.434' xlink:href='#g2-46'/>
<use x='124.23' y='145.434' xlink:href='#g2-52'/>
<use x='126.877' y='145.434' xlink:href='#g2-55'/>
<use x='129.523' y='145.434' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 -30.437 228.549)'>
<use x='114.487' y='145.434' xlink:href='#g2-49'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-51'/>
<use x='121.25' y='145.434' xlink:href='#g2-52'/>
</g>
<g transform='matrix(0 -1 1 0 26.757 244.893)'>
<use x='114.487' y='145.434' xlink:href='#g2-49'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-48'/>
<use x='121.25' y='145.434' xlink:href='#g2-56'/>
</g>
<g transform='matrix(0 -1 1 0 83.952 245.269)'>
<use x='114.487' y='145.434' xlink:href='#g2-49'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-48'/>
<use x='121.25' y='145.434' xlink:href='#g2-55'/>
</g>
<g transform='matrix(0 -1 1 0 141.146 187.155)'>
<use x='109.598' y='145.434' xlink:href='#g4-1'/>
<use x='113.103' y='145.434' xlink:href='#g4-1'/>
<use x='116.608' y='145.434' xlink:href='#g4-1'/>
<use x='120.114' y='145.434' xlink:href='#g2-51'/>
<use x='122.76' y='145.434' xlink:href='#g2-46'/>
<use x='124.23' y='145.434' xlink:href='#g2-50'/>
<use x='126.877' y='145.434' xlink:href='#g2-49'/>
<use x='129.523' y='145.434' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 198.34 221.034)'>
<use x='114.487' y='145.434' xlink:href='#g2-49'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-52'/>
<use x='121.25' y='145.434' xlink:href='#g2-54'/>
</g>
<g transform='matrix(0 -1 1 0 -25.207 245.519)'>
<use x='114.487' y='145.434' xlink:href='#g2-49'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-48'/>
<use x='121.25' y='145.434' xlink:href='#g2-55'/>
</g>
<g transform='matrix(0 -1 1 0 31.988 239.696)'>
<use x='114.487' y='145.434' xlink:href='#g2-49'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-49'/>
<use x='121.25' y='145.434' xlink:href='#g2-54'/>
</g>
<g transform='matrix(0 -1 1 0 89.182 187.155)'>
<use x='109.598' y='145.434' xlink:href='#g4-1'/>
<use x='113.103' y='145.434' xlink:href='#g4-1'/>
<use x='116.608' y='145.434' xlink:href='#g4-1'/>
<use x='120.114' y='145.434' xlink:href='#g2-50'/>
<use x='122.76' y='145.434' xlink:href='#g2-46'/>
<use x='124.23' y='145.434' xlink:href='#g2-49'/>
<use x='126.877' y='145.434' xlink:href='#g2-52'/>
<use x='129.523' y='145.434' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 146.376 188.157)'>
<use x='114.487' y='145.434' xlink:href='#g2-49'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-57'/>
<use x='121.25' y='145.434' xlink:href='#g2-56'/>
</g>
<g transform='matrix(0 -1 1 0 203.571 187.155)'>
<use x='109.598' y='145.434' xlink:href='#g4-1'/>
<use x='113.103' y='145.434' xlink:href='#g4-1'/>
<use x='116.608' y='145.434' xlink:href='#g4-1'/>
<use x='120.114' y='145.434' xlink:href='#g2-52'/>
<use x='122.76' y='145.434' xlink:href='#g2-46'/>
<use x='124.23' y='145.434' xlink:href='#g2-52'/>
<use x='126.877' y='145.434' xlink:href='#g2-57'/>
<use x='129.523' y='145.434' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 -19.976 187.155)'>
<use x='114.487' y='145.434' xlink:href='#g2-50'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-50'/>
<use x='121.25' y='145.434' xlink:href='#g2-48'/>
</g>
<g transform='matrix(0 -1 1 0 37.218 201.746)'>
<use x='114.487' y='145.434' xlink:href='#g2-49'/>
<use x='117.133' y='145.434' xlink:href='#g2-46'/>
<use x='118.603' y='145.434' xlink:href='#g2-55'/>
<use x='121.25' y='145.434' xlink:href='#g2-55'/>
</g>
<g transform='matrix(0 -1 1 0 94.413 187.155)'>
<use x='109.598' y='145.434' xlink:href='#g4-1'/>
<use x='113.103' y='145.434' xlink:href='#g4-1'/>
<use x='116.608' y='145.434' xlink:href='#g4-1'/>
<use x='120.114' y='145.434' xlink:href='#g2-56'/>
<use x='122.76' y='145.434' xlink:href='#g2-46'/>
<use x='124.23' y='145.434' xlink:href='#g2-48'/>
<use x='126.877' y='145.434' xlink:href='#g2-52'/>
<use x='129.523' y='145.434' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 151.607 187.155)'>
<use x='109.598' y='145.434' xlink:href='#g4-1'/>
<use x='113.103' y='145.434' xlink:href='#g4-1'/>
<use x='116.608' y='145.434' xlink:href='#g4-1'/>
<use x='120.114' y='145.434' xlink:href='#g2-50'/>
<use x='122.76' y='145.434' xlink:href='#g2-46'/>
<use x='124.23' y='145.434' xlink:href='#g2-55'/>
<use x='126.877' y='145.434' xlink:href='#g2-56'/>
<use x='129.523' y='145.434' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 208.801 187.155)'>
<use x='109.598' y='145.434' xlink:href='#g4-1'/>
<use x='113.103' y='145.434' xlink:href='#g4-1'/>
<use x='116.608' y='145.434' xlink:href='#g4-1'/>
<use x='120.114' y='145.434' xlink:href='#g2-56'/>
<use x='122.76' y='145.434' xlink:href='#g2-46'/>
<use x='124.23' y='145.434' xlink:href='#g2-54'/>
<use x='126.877' y='145.434' xlink:href='#g2-49'/>
<use x='129.523' y='145.434' xlink:href='#g2-120'/>
</g>
<g transform='matrix(0 -1 1 0 -86.074 311.062)'>
<use x='114.487' y='145.434' xlink:href='#g1-82'/>
<use x='120.457' y='145.434' xlink:href='#g1-101'/>
<use x='124.553' y='145.434' xlink:href='#g1-108'/>
<use x='126.753' y='145.434' xlink:href='#g1-97'/>
<use x='131.181' y='145.434' xlink:href='#g1-116'/>
<use x='134.509' y='145.434' xlink:href='#g1-105'/>
<use x='136.709' y='145.434' xlink:href='#g1-118'/>
<use x='140.957' y='145.434' xlink:href='#g1-101'/>
<use x='148.124' y='145.434' xlink:href='#g1-116'/>
<use x='151.452' y='145.434' xlink:href='#g1-105'/>
<use x='153.652' y='145.434' xlink:href='#g1-109'/>
<use x='160.972' y='145.434' xlink:href='#g1-101'/>
<use x='168.139' y='145.434' xlink:href='#g3-40'/>
<use x='171.432' y='145.434' xlink:href='#g3-108'/>
<use x='173.453' y='145.434' xlink:href='#g3-111'/>
<use x='177.452' y='145.434' xlink:href='#g3-119'/>
<use x='183' y='145.434' xlink:href='#g3-101'/>
<use x='186.764' y='145.434' xlink:href='#g3-114'/>
<use x='192.479' y='145.434' xlink:href='#g3-105'/>
<use x='194.499' y='145.434' xlink:href='#g3-115'/>
<use x='200.568' y='145.434' xlink:href='#g3-98'/>
<use x='205.176' y='145.434' xlink:href='#g3-101'/>
<use x='208.94' y='145.434' xlink:href='#g3-116'/>
<use x='211.998' y='145.434' xlink:href='#g3-116'/>
<use x='215.056' y='145.434' xlink:href='#g3-101'/>
<use x='218.819' y='145.434' xlink:href='#g3-114'/>
<use x='221.711' y='145.434' xlink:href='#g3-41'/>
</g>
<path d='M82.348 262.243H231.688V232.317H82.348Z' fill='#fff'/>
<path d='M82.348 262.243H231.688V232.317H82.348Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10'/>
<path d='M85.535 242.77H88.523V234.801H85.535ZM91.516 242.77H94.504V236.793H91.516Z' fill='#933'/>
<path d='M85.535 242.77H88.523V234.801H85.535ZM91.516 242.77H94.504V236.793H91.516Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10'/>
<g transform='matrix(1 0 0 1 -40.354 110.298)'>
<use x='141.573' y='132.464' xlink:href='#g3-120'/>
<use x='145.475' y='132.464' xlink:href='#g3-109'/>
<use x='152.2' y='132.464' xlink:href='#g3-105'/>
<use x='154.221' y='132.464' xlink:href='#g3-58'/>
<use x='156.573' y='132.464' xlink:href='#g0-57'/>
<use x='160.278' y='132.464' xlink:href='#g0-48'/>
</g>
<path d='M130.344 242.77H133.336V234.801H130.344ZM136.324 242.77H139.313V236.793H136.324Z' fill='#bf8080'/>
<path d='M130.344 242.77H133.336V234.801H130.344ZM136.324 242.77H139.313V236.793H136.324Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10'/>
<g transform='matrix(1 0 0 1 -38.403 110.298)'>
<use x='181.727' y='132.464' xlink:href='#g3-109'/>
<use x='188.452' y='132.464' xlink:href='#g3-105'/>
<use x='190.472' y='132.464' xlink:href='#g3-58'/>
<use x='192.825' y='132.464' xlink:href='#g0-57'/>
<use x='196.53' y='132.464' xlink:href='#g0-51'/>
</g>
<path d='M165.844 242.77H168.832V234.801H165.844ZM171.82 242.77H174.813V236.793H171.82Z' fill='#8080bf'/>
<path d='M165.844 242.77H168.832V234.801H165.844ZM171.82 242.77H174.813V236.793H171.82Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10'/>
<g transform='matrix(1 0 0 1 -37.441 109.855)'>
<use x='215.44' y='132.464' xlink:href='#g3-116'/>
<use x='218.498' y='132.464' xlink:href='#g3-99'/>
<use x='222.262' y='132.464' xlink:href='#g3-58'/>
<use x='224.614' y='132.464' xlink:href='#g0-53'/>
<use x='228.319' y='132.464' xlink:href='#g0-48'/>
</g>
<path d='M197.77 242.77H200.758V234.801H197.77ZM203.75 242.77H206.738V236.793H203.75Z' fill='#ffb733'/>
<path d='M197.77 242.77H200.758V234.801H197.77ZM203.75 242.77H206.738V236.793H203.75Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10'/>
<g transform='matrix(1 0 0 1 -37.04 110.298)'>
<use x='246.965' y='132.464' xlink:href='#g3-106'/>
<use x='249.221' y='132.464' xlink:href='#g3-101'/>
<use x='252.984' y='132.464' xlink:href='#g3-58'/>
<use x='255.337' y='132.464' xlink:href='#g0-53'/>
<use x='259.041' y='132.464' xlink:href='#g0-51'/>
</g>
<path d='M85.535 255.742H88.523V247.77H85.535ZM91.516 255.742H94.504V249.762H91.516Z' fill='#80bf80'/>
<path d='M85.535 255.742H88.523V247.77H85.535ZM91.516 255.742H94.504V249.762H91.516Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10'/>
<g transform='matrix(1 0 0 1 -43.882 110.334)'>
<use x='141.573' y='145.434' xlink:href='#g3-104'/>
<use x='145.946' y='145.434' xlink:href='#g3-111'/>
<use x='150.18' y='145.434' xlink:href='#g3-97'/>
<use x='154.013' y='145.434' xlink:href='#g3-114'/>
<use x='156.905' y='145.434' xlink:href='#g3-100'/>
<use x='161.278' y='145.434' xlink:href='#g3-58'/>
<use x='163.63' y='145.434' xlink:href='#g0-53'/>
<use x='167.335' y='145.434' xlink:href='#g0-51'/>
</g>
<path d='M130.344 255.742H133.336V247.77H130.344ZM136.324 255.742H139.313V249.762H136.324Z' fill='#399'/>
<path d='M130.344 255.742H133.336V247.77H130.344ZM136.324 255.742H139.313V249.762H136.324Z' stroke='#000' fill='none' stroke-width='.399' stroke-miterlimit='10'/>
<g transform='matrix(1 0 0 1 -39.227 109.855)'>
<use x='181.727' y='145.434' xlink:href='#g3-115'/>
<use x='184.974' y='145.434' xlink:href='#g3-121'/>
<use x='188.876' y='145.434' xlink:href='#g3-115'/>
<use x='192.122' y='145.434' xlink:href='#g3-58'/>
<use x='194.474' y='145.434' xlink:href='#g0-50'/>
<use x='198.179' y='145.434' xlink:href='#g0-51'/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 63 KiB

View File

@ -1,4 +1,4 @@
# Doxyfile 1.8.15 # Doxyfile 1.9.1
# This file describes the settings to be used by the documentation system # This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project. # doxygen (www.doxygen.org) for a project.
@ -38,7 +38,7 @@ PROJECT_NAME = mi-malloc
# could be handy for archiving the generated documentation or if some version # could be handy for archiving the generated documentation or if some version
# control system is used. # control system is used.
PROJECT_NUMBER = 1.6 PROJECT_NUMBER = 1.8/2.1
# Using the PROJECT_BRIEF tag one can provide an optional one line description # Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a # for a project that appears at the top of each page and should give viewer a
@ -197,6 +197,16 @@ SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = YES JAVADOC_AUTOBRIEF = YES
# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line
# such as
# /***************
# as being the beginning of a Javadoc-style comment "banner". If set to NO, the
# Javadoc-style will behave just like regular comments and it will not be
# interpreted by doxygen.
# The default value is: NO.
JAVADOC_BANNER = NO
# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
# line (until the first dot) of a Qt-style comment as the brief description. If # line (until the first dot) of a Qt-style comment as the brief description. If
# set to NO, the Qt-style will behave just like regular Qt-style comments (thus # set to NO, the Qt-style will behave just like regular Qt-style comments (thus
@ -217,6 +227,14 @@ QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO MULTILINE_CPP_IS_BRIEF = NO
# By default Python docstrings are displayed as preformatted text and doxygen's
# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the
# doxygen's special commands can be used and the contents of the docstring
# documentation blocks is shown as doxygen documentation.
# The default value is: YES.
PYTHON_DOCSTRING = YES
# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
# documentation from any documented member that it re-implements. # documentation from any documented member that it re-implements.
# The default value is: YES. # The default value is: YES.
@ -253,12 +271,6 @@ TAB_SIZE = 2
ALIASES = ALIASES =
# This tag can be used to specify a number of word-keyword mappings (TCL only).
# A mapping has the form "name=value". For example adding "class=itcl::class"
# will allow you to use the command class in the itcl::class meaning.
TCL_SUBST =
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
# only. Doxygen will then generate output that is more tailored for C. For # only. Doxygen will then generate output that is more tailored for C. For
# instance, some of the names that are used will be different. The list of all # instance, some of the names that are used will be different. The list of all
@ -299,19 +311,22 @@ OPTIMIZE_OUTPUT_SLICE = NO
# parses. With this tag you can assign which parser to use for a given # parses. With this tag you can assign which parser to use for a given
# extension. Doxygen has a built-in mapping, but you can override or extend it # extension. Doxygen has a built-in mapping, but you can override or extend it
# using this tag. The format is ext=language, where ext is a file extension, and # using this tag. The format is ext=language, where ext is a file extension, and
# language is one of the parsers supported by doxygen: IDL, Java, Javascript, # language is one of the parsers supported by doxygen: IDL, Java, JavaScript,
# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, # Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, VHDL,
# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: # Fortran (fixed format Fortran: FortranFixed, free formatted Fortran:
# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser # FortranFree, unknown formatted Fortran: Fortran. In the later case the parser
# tries to guess whether the code is fixed or free formatted code, this is the # tries to guess whether the code is fixed or free formatted code, this is the
# default for Fortran type files), VHDL, tcl. For instance to make doxygen treat # default for Fortran type files). For instance to make doxygen treat .inc files
# .inc files as Fortran files (default is PHP), and .f files as C (default is # as Fortran files (default is PHP), and .f files as C (default is Fortran),
# Fortran), use: inc=Fortran f=C. # use: inc=Fortran f=C.
# #
# Note: For files without extension you can use no_extension as a placeholder. # Note: For files without extension you can use no_extension as a placeholder.
# #
# Note that for custom extensions you also need to set FILE_PATTERNS otherwise # Note that for custom extensions you also need to set FILE_PATTERNS otherwise
# the files are not read by doxygen. # the files are not read by doxygen. When specifying no_extension you should add
# * to the FILE_PATTERNS.
#
# Note see also the list of default file extension mappings.
EXTENSION_MAPPING = EXTENSION_MAPPING =
@ -329,7 +344,7 @@ MARKDOWN_SUPPORT = YES
# to that level are automatically included in the table of contents, even if # to that level are automatically included in the table of contents, even if
# they do not have an id attribute. # they do not have an id attribute.
# Note: This feature currently applies only to Markdown headings. # Note: This feature currently applies only to Markdown headings.
# Minimum value: 0, maximum value: 99, default value: 0. # Minimum value: 0, maximum value: 99, default value: 5.
# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. # This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
TOC_INCLUDE_HEADINGS = 0 TOC_INCLUDE_HEADINGS = 0
@ -445,6 +460,19 @@ TYPEDEF_HIDES_STRUCT = YES
LOOKUP_CACHE_SIZE = 0 LOOKUP_CACHE_SIZE = 0
# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use
# during processing. When set to 0 doxygen will based this on the number of
# cores available in the system. You can set it explicitly to a value larger
# than 0 to get more control over the balance between CPU load and processing
# speed. At this moment only the input processing can be done using multiple
# threads. Since this is still an experimental feature the default is set to 1,
# which efficively disables parallel processing. Please report any issues you
# encounter. Generating dot graphs in parallel is controlled by the
# DOT_NUM_THREADS setting.
# Minimum value: 0, maximum value: 32, default value: 1.
NUM_PROC_THREADS = 1
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Build related configuration options # Build related configuration options
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
@ -465,6 +493,12 @@ EXTRACT_ALL = YES
EXTRACT_PRIVATE = NO EXTRACT_PRIVATE = NO
# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual
# methods of a class will be included in the documentation.
# The default value is: NO.
EXTRACT_PRIV_VIRTUAL = NO
# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal # If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
# scope will be included in the documentation. # scope will be included in the documentation.
# The default value is: NO. # The default value is: NO.
@ -502,6 +536,13 @@ EXTRACT_LOCAL_METHODS = NO
EXTRACT_ANON_NSPACES = NO EXTRACT_ANON_NSPACES = NO
# If this flag is set to YES, the name of an unnamed parameter in a declaration
# will be determined by the corresponding definition. By default unnamed
# parameters remain unnamed in the output.
# The default value is: YES.
RESOLVE_UNNAMED_PARAMS = YES
# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
# undocumented members inside documented classes or files. If set to NO these # undocumented members inside documented classes or files. If set to NO these
# members will be included in the various overviews, but no documentation # members will be included in the various overviews, but no documentation
@ -519,8 +560,8 @@ HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO HIDE_UNDOC_CLASSES = NO
# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
# (class|struct|union) declarations. If set to NO, these declarations will be # declarations. If set to NO, these declarations will be included in the
# included in the documentation. # documentation.
# The default value is: NO. # The default value is: NO.
HIDE_FRIEND_COMPOUNDS = NO HIDE_FRIEND_COMPOUNDS = NO
@ -539,11 +580,18 @@ HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO INTERNAL_DOCS = NO
# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file # With the correct setting of option CASE_SENSE_NAMES doxygen will better be
# names in lower-case letters. If set to YES, upper-case letters are also # able to match the capabilities of the underlying filesystem. In case the
# allowed. This is useful if you have classes or files whose names only differ # filesystem is case sensitive (i.e. it supports files in the same directory
# in case and if your file system supports case sensitive file names. Windows # whose names only differ in casing), the option must be set to YES to properly
# and Mac users are advised to set this option to NO. # deal with such files in case they appear in the input. For filesystems that
# are not case sensitive the option should be be set to NO to properly deal with
# output files written for symbols that only differ in casing, such as for two
# classes, one named CLASS and the other named Class, and to also support
# references to files without having to specify the exact matching casing. On
# Windows (including Cygwin) and MacOS, users should typically set this option
# to NO, whereas on Linux or other Unix flavors it should typically be set to
# YES.
# The default value is: system dependent. # The default value is: system dependent.
CASE_SENSE_NAMES = NO CASE_SENSE_NAMES = NO
@ -782,7 +830,10 @@ WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO WARN_NO_PARAMDOC = NO
# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when # If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
# a warning is encountered. # a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS
# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but
# at the end of the doxygen process doxygen will return with a non-zero status.
# Possible values are: NO, YES and FAIL_ON_WARNINGS.
# The default value is: NO. # The default value is: NO.
WARN_AS_ERROR = NO WARN_AS_ERROR = NO
@ -818,8 +869,8 @@ INPUT = mimalloc-doc.h
# This tag can be used to specify the character encoding of the source files # This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
# libiconv (or the iconv built into libc) for the transcoding. See the libiconv # libiconv (or the iconv built into libc) for the transcoding. See the libiconv
# documentation (see: https://www.gnu.org/software/libiconv/) for the list of # documentation (see:
# possible encodings. # https://www.gnu.org/software/libiconv/) for the list of possible encodings.
# The default value is: UTF-8. # The default value is: UTF-8.
INPUT_ENCODING = UTF-8 INPUT_ENCODING = UTF-8
@ -832,11 +883,15 @@ INPUT_ENCODING = UTF-8
# need to set EXTENSION_MAPPING for the extension otherwise the files are not # need to set EXTENSION_MAPPING for the extension otherwise the files are not
# read by doxygen. # read by doxygen.
# #
# Note the list of default checked file patterns might differ from the list of
# default file extension mappings.
#
# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, # If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, # *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, # *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, # *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment),
# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, *.qsf and *.ice. # *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, *.vhdl,
# *.ucf, *.qsf and *.ice.
FILE_PATTERNS = *.c \ FILE_PATTERNS = *.c \
*.cc \ *.cc \
@ -1094,16 +1149,22 @@ USE_HTAGS = NO
VERBATIM_HEADERS = YES VERBATIM_HEADERS = YES
# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the # If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the
# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the # clang parser (see:
# cost of reduced performance. This can be particularly helpful with template # http://clang.llvm.org/) for more accurate parsing at the cost of reduced
# rich C++ code for which doxygen's built-in parser lacks the necessary type # performance. This can be particularly helpful with template rich C++ code for
# information. # which doxygen's built-in parser lacks the necessary type information.
# Note: The availability of this option depends on whether or not doxygen was # Note: The availability of this option depends on whether or not doxygen was
# generated with the -Duse_libclang=ON option for CMake. # generated with the -Duse_libclang=ON option for CMake.
# The default value is: NO. # The default value is: NO.
CLANG_ASSISTED_PARSING = NO CLANG_ASSISTED_PARSING = NO
# If clang assisted parsing is enabled and the CLANG_ADD_INC_PATHS tag is set to
# YES then doxygen will add the directory of each input to the include path.
# The default value is: YES.
CLANG_ADD_INC_PATHS = YES
# If clang assisted parsing is enabled you can provide the compiler with command # If clang assisted parsing is enabled you can provide the compiler with command
# line options that you would normally use when invoking the compiler. Note that # line options that you would normally use when invoking the compiler. Note that
# the include paths will already be set by doxygen for the files and directories # the include paths will already be set by doxygen for the files and directories
@ -1113,10 +1174,13 @@ CLANG_ASSISTED_PARSING = NO
CLANG_OPTIONS = CLANG_OPTIONS =
# If clang assisted parsing is enabled you can provide the clang parser with the # If clang assisted parsing is enabled you can provide the clang parser with the
# path to the compilation database (see: # path to the directory containing a file called compile_commands.json. This
# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) used when the files # file is the compilation database (see:
# were built. This is equivalent to specifying the "-p" option to a clang tool, # http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the
# such as clang-check. These options will then be passed to the parser. # options used when the source files were built. This is equivalent to
# specifying the -p option to a clang tool, such as clang-check. These options
# will then be passed to the parser. Any options specified with CLANG_OPTIONS
# will be added as well.
# Note: The availability of this option depends on whether or not doxygen was # Note: The availability of this option depends on whether or not doxygen was
# generated with the -Duse_libclang=ON option for CMake. # generated with the -Duse_libclang=ON option for CMake.
@ -1133,13 +1197,6 @@ CLANG_DATABASE_PATH =
ALPHABETICAL_INDEX = YES ALPHABETICAL_INDEX = YES
# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
# which the alphabetical index list will be split.
# Minimum value: 1, maximum value: 20, default value: 5.
# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
COLS_IN_ALPHA_INDEX = 5
# In case all classes in a project start with a common prefix, all classes will # In case all classes in a project start with a common prefix, all classes will
# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
# can be used to specify a prefix (or a list of prefixes) that should be ignored # can be used to specify a prefix (or a list of prefixes) that should be ignored
@ -1278,9 +1335,9 @@ HTML_TIMESTAMP = NO
# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML # If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML
# documentation will contain a main index with vertical navigation menus that # documentation will contain a main index with vertical navigation menus that
# are dynamically created via Javascript. If disabled, the navigation index will # are dynamically created via JavaScript. If disabled, the navigation index will
# consists of multiple levels of tabs that are statically embedded in every HTML # consists of multiple levels of tabs that are statically embedded in every HTML
# page. Disable this option to support browsers that do not have Javascript, # page. Disable this option to support browsers that do not have JavaScript,
# like the Qt help browser. # like the Qt help browser.
# The default value is: YES. # The default value is: YES.
# This tag requires that the tag GENERATE_HTML is set to YES. # This tag requires that the tag GENERATE_HTML is set to YES.
@ -1310,10 +1367,11 @@ HTML_INDEX_NUM_ENTRIES = 100
# If the GENERATE_DOCSET tag is set to YES, additional index files will be # If the GENERATE_DOCSET tag is set to YES, additional index files will be
# generated that can be used as input for Apple's Xcode 3 integrated development # generated that can be used as input for Apple's Xcode 3 integrated development
# environment (see: https://developer.apple.com/xcode/), introduced with OSX # environment (see:
# 10.5 (Leopard). To create a documentation set, doxygen will generate a # https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To
# Makefile in the HTML output directory. Running make will produce the docset in # create a documentation set, doxygen will generate a Makefile in the HTML
# that directory and running make install will install the docset in # output directory. Running make will produce the docset in that directory and
# running make install will install the docset in
# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy # startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy
# genXcode/_index.html for more information. # genXcode/_index.html for more information.
@ -1355,8 +1413,8 @@ DOCSET_PUBLISHER_NAME = Publisher
# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
# additional HTML index files: index.hhp, index.hhc, and index.hhk. The # additional HTML index files: index.hhp, index.hhc, and index.hhk. The
# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
# (see: https://www.microsoft.com/en-us/download/details.aspx?id=21138) on # (see:
# Windows. # https://www.microsoft.com/en-us/download/details.aspx?id=21138) on Windows.
# #
# The HTML Help Workshop contains a compiler that can convert all HTML output # The HTML Help Workshop contains a compiler that can convert all HTML output
# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
@ -1386,7 +1444,7 @@ CHM_FILE =
HHC_LOCATION = HHC_LOCATION =
# The GENERATE_CHI flag controls if a separate .chi index file is generated # The GENERATE_CHI flag controls if a separate .chi index file is generated
# (YES) or that it should be included in the master .chm file (NO). # (YES) or that it should be included in the main .chm file (NO).
# The default value is: NO. # The default value is: NO.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES. # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
@ -1431,7 +1489,8 @@ QCH_FILE =
# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
# Project output. For more information please see Qt Help Project / Namespace # Project output. For more information please see Qt Help Project / Namespace
# (see: http://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). # (see:
# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace).
# The default value is: org.doxygen.Project. # The default value is: org.doxygen.Project.
# This tag requires that the tag GENERATE_QHP is set to YES. # This tag requires that the tag GENERATE_QHP is set to YES.
@ -1439,8 +1498,8 @@ QHP_NAMESPACE = org.doxygen.Project
# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
# Help Project output. For more information please see Qt Help Project / Virtual # Help Project output. For more information please see Qt Help Project / Virtual
# Folders (see: http://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual- # Folders (see:
# folders). # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders).
# The default value is: doc. # The default value is: doc.
# This tag requires that the tag GENERATE_QHP is set to YES. # This tag requires that the tag GENERATE_QHP is set to YES.
@ -1448,30 +1507,30 @@ QHP_VIRTUAL_FOLDER = doc
# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
# filter to add. For more information please see Qt Help Project / Custom # filter to add. For more information please see Qt Help Project / Custom
# Filters (see: http://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- # Filters (see:
# filters). # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters).
# This tag requires that the tag GENERATE_QHP is set to YES. # This tag requires that the tag GENERATE_QHP is set to YES.
QHP_CUST_FILTER_NAME = QHP_CUST_FILTER_NAME =
# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
# custom filter to add. For more information please see Qt Help Project / Custom # custom filter to add. For more information please see Qt Help Project / Custom
# Filters (see: http://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- # Filters (see:
# filters). # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters).
# This tag requires that the tag GENERATE_QHP is set to YES. # This tag requires that the tag GENERATE_QHP is set to YES.
QHP_CUST_FILTER_ATTRS = QHP_CUST_FILTER_ATTRS =
# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
# project's filter section matches. Qt Help Project / Filter Attributes (see: # project's filter section matches. Qt Help Project / Filter Attributes (see:
# http://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). # https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes).
# This tag requires that the tag GENERATE_QHP is set to YES. # This tag requires that the tag GENERATE_QHP is set to YES.
QHP_SECT_FILTER_ATTRS = QHP_SECT_FILTER_ATTRS =
# The QHG_LOCATION tag can be used to specify the location of Qt's # The QHG_LOCATION tag can be used to specify the location (absolute path
# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the # including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to
# generated .qhp file. # run qhelpgenerator on the generated .qhp file.
# This tag requires that the tag GENERATE_QHP is set to YES. # This tag requires that the tag GENERATE_QHP is set to YES.
QHG_LOCATION = QHG_LOCATION =
@ -1548,6 +1607,17 @@ TREEVIEW_WIDTH = 180
EXT_LINKS_IN_WINDOW = NO EXT_LINKS_IN_WINDOW = NO
# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg
# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see
# https://inkscape.org) to generate formulas as SVG images instead of PNGs for
# the HTML output. These images will generally look nicer at scaled resolutions.
# Possible values are: png (the default) and svg (looks nicer but requires the
# pdf2svg or inkscape tool).
# The default value is: png.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_FORMULA_FORMAT = png
# Use this tag to change the font size of LaTeX formulas included as images in # Use this tag to change the font size of LaTeX formulas included as images in
# the HTML documentation. When you change the font size after a successful # the HTML documentation. When you change the font size after a successful
# doxygen run you need to manually remove any form_*.png images from the HTML # doxygen run you need to manually remove any form_*.png images from the HTML
@ -1568,8 +1638,14 @@ FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES FORMULA_TRANSPARENT = YES
# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands
# to create new LaTeX commands to be used in formulas as building blocks. See
# the section "Including formulas" for details.
FORMULA_MACROFILE =
# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
# https://www.mathjax.org) which uses client side Javascript for the rendering # https://www.mathjax.org) which uses client side JavaScript for the rendering
# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX # instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
# installed or if you want to formulas look prettier in the HTML output. When # installed or if you want to formulas look prettier in the HTML output. When
# enabled you may also need to install MathJax separately and configure the path # enabled you may also need to install MathJax separately and configure the path
@ -1581,7 +1657,7 @@ USE_MATHJAX = NO
# When MathJax is enabled you can set the default output format to be used for # When MathJax is enabled you can set the default output format to be used for
# the MathJax output. See the MathJax site (see: # the MathJax output. See the MathJax site (see:
# http://docs.mathjax.org/en/latest/output.html) for more details. # http://docs.mathjax.org/en/v2.7-latest/output.html) for more details.
# Possible values are: HTML-CSS (which is slower, but has the best # Possible values are: HTML-CSS (which is slower, but has the best
# compatibility), NativeMML (i.e. MathML) and SVG. # compatibility), NativeMML (i.e. MathML) and SVG.
# The default value is: HTML-CSS. # The default value is: HTML-CSS.
@ -1597,7 +1673,7 @@ MATHJAX_FORMAT = HTML-CSS
# Content Delivery Network so you can quickly see the result without installing # Content Delivery Network so you can quickly see the result without installing
# MathJax. However, it is strongly recommended to install a local copy of # MathJax. However, it is strongly recommended to install a local copy of
# MathJax from https://www.mathjax.org before deployment. # MathJax from https://www.mathjax.org before deployment.
# The default value is: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/. # The default value is: https://cdn.jsdelivr.net/npm/mathjax@2.
# This tag requires that the tag USE_MATHJAX is set to YES. # This tag requires that the tag USE_MATHJAX is set to YES.
MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
@ -1611,7 +1687,8 @@ MATHJAX_EXTENSIONS =
# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
# of code that will be used on startup of the MathJax code. See the MathJax site # of code that will be used on startup of the MathJax code. See the MathJax site
# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an # (see:
# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an
# example see the documentation. # example see the documentation.
# This tag requires that the tag USE_MATHJAX is set to YES. # This tag requires that the tag USE_MATHJAX is set to YES.
@ -1639,7 +1716,7 @@ MATHJAX_CODEFILE =
SEARCHENGINE = YES SEARCHENGINE = YES
# When the SERVER_BASED_SEARCH tag is enabled the search engine will be # When the SERVER_BASED_SEARCH tag is enabled the search engine will be
# implemented using a web server instead of a web client using Javascript. There # implemented using a web server instead of a web client using JavaScript. There
# are two flavors of web server based searching depending on the EXTERNAL_SEARCH # are two flavors of web server based searching depending on the EXTERNAL_SEARCH
# setting. When disabled, doxygen will generate a PHP script for searching and # setting. When disabled, doxygen will generate a PHP script for searching and
# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing # an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
@ -1658,7 +1735,8 @@ SERVER_BASED_SEARCH = NO
# #
# Doxygen ships with an example indexer (doxyindexer) and search engine # Doxygen ships with an example indexer (doxyindexer) and search engine
# (doxysearch.cgi) which are based on the open source search engine library # (doxysearch.cgi) which are based on the open source search engine library
# Xapian (see: https://xapian.org/). # Xapian (see:
# https://xapian.org/).
# #
# See the section "External Indexing and Searching" for details. # See the section "External Indexing and Searching" for details.
# The default value is: NO. # The default value is: NO.
@ -1671,8 +1749,9 @@ EXTERNAL_SEARCH = NO
# #
# Doxygen ships with an example indexer (doxyindexer) and search engine # Doxygen ships with an example indexer (doxyindexer) and search engine
# (doxysearch.cgi) which are based on the open source search engine library # (doxysearch.cgi) which are based on the open source search engine library
# Xapian (see: https://xapian.org/). See the section "External Indexing and # Xapian (see:
# Searching" for details. # https://xapian.org/). See the section "External Indexing and Searching" for
# details.
# This tag requires that the tag SEARCHENGINE is set to YES. # This tag requires that the tag SEARCHENGINE is set to YES.
SEARCHENGINE_URL = SEARCHENGINE_URL =
@ -1743,10 +1822,11 @@ LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex MAKEINDEX_CMD_NAME = makeindex
# The LATEX_MAKEINDEX_CMD tag can be used to specify the command name to # The LATEX_MAKEINDEX_CMD tag can be used to specify the command name to
# generate index for LaTeX. # generate index for LaTeX. In case there is no backslash (\) as first character
# it will be automatically added in the LaTeX code.
# Note: This tag is used in the generated output file (.tex). # Note: This tag is used in the generated output file (.tex).
# See also: MAKEINDEX_CMD_NAME for the part in the Makefile / make.bat. # See also: MAKEINDEX_CMD_NAME for the part in the Makefile / make.bat.
# The default value is: \makeindex. # The default value is: makeindex.
# This tag requires that the tag GENERATE_LATEX is set to YES. # This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_MAKEINDEX_CMD = \makeindex LATEX_MAKEINDEX_CMD = \makeindex
@ -1835,9 +1915,11 @@ LATEX_EXTRA_FILES =
PDF_HYPERLINKS = YES PDF_HYPERLINKS = YES
# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate # If the USE_PDFLATEX tag is set to YES, doxygen will use the engine as
# the PDF file directly from the LaTeX files. Set this option to YES, to get a # specified with LATEX_CMD_NAME to generate the PDF file directly from the LaTeX
# higher quality PDF documentation. # files. Set this option to YES, to get a higher quality PDF documentation.
#
# See also section LATEX_CMD_NAME for selecting the engine.
# The default value is: YES. # The default value is: YES.
# This tag requires that the tag GENERATE_LATEX is set to YES. # This tag requires that the tag GENERATE_LATEX is set to YES.
@ -2076,6 +2158,10 @@ DOCBOOK_PROGRAMLISTING = NO
GENERATE_AUTOGEN_DEF = NO GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# Configuration options related to Sqlite3 output
#---------------------------------------------------------------------------
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Configuration options related to the Perl module output # Configuration options related to the Perl module output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
@ -2238,12 +2324,6 @@ EXTERNAL_GROUPS = YES
EXTERNAL_PAGES = YES EXTERNAL_PAGES = YES
# The PERL_PATH should be the absolute path and name of the perl script
# interpreter (i.e. the result of 'which perl').
# The default file (with absolute path) is: /usr/bin/perl.
PERL_PATH = /usr/bin/perl
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Configuration options related to the dot tool # Configuration options related to the dot tool
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
@ -2257,15 +2337,6 @@ PERL_PATH = /usr/bin/perl
CLASS_DIAGRAMS = YES CLASS_DIAGRAMS = YES
# You can define message sequence charts within doxygen comments using the \msc
# command. Doxygen will then run the mscgen tool (see:
# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
# documentation. The MSCGEN_PATH tag allows you to specify the directory where
# the mscgen tool resides. If left empty the tool is assumed to be found in the
# default search path.
MSCGEN_PATH =
# You can include diagrams made with dia in doxygen documentation. Doxygen will # You can include diagrams made with dia in doxygen documentation. Doxygen will
# then run dia to produce the diagram and insert it in the documentation. The # then run dia to produce the diagram and insert it in the documentation. The
# DIA_PATH tag allows you to specify the directory where the dia binary resides. # DIA_PATH tag allows you to specify the directory where the dia binary resides.
@ -2363,10 +2434,32 @@ UML_LOOK = NO
# but if the number exceeds 15, the total amount of fields shown is limited to # but if the number exceeds 15, the total amount of fields shown is limited to
# 10. # 10.
# Minimum value: 0, maximum value: 100, default value: 10. # Minimum value: 0, maximum value: 100, default value: 10.
# This tag requires that the tag HAVE_DOT is set to YES. # This tag requires that the tag UML_LOOK is set to YES.
UML_LIMIT_NUM_FIELDS = 10 UML_LIMIT_NUM_FIELDS = 10
# If the DOT_UML_DETAILS tag is set to NO, doxygen will show attributes and
# methods without types and arguments in the UML graphs. If the DOT_UML_DETAILS
# tag is set to YES, doxygen will add type and arguments for attributes and
# methods in the UML graphs. If the DOT_UML_DETAILS tag is set to NONE, doxygen
# will not generate fields with class member information in the UML graphs. The
# class diagrams will look similar to the default class diagrams but using UML
# notation for the relationships.
# Possible values are: NO, YES and NONE.
# The default value is: NO.
# This tag requires that the tag UML_LOOK is set to YES.
DOT_UML_DETAILS = NO
# The DOT_WRAP_THRESHOLD tag can be used to set the maximum number of characters
# to display on a single line. If the actual line length exceeds this threshold
# significantly it will wrapped across multiple lines. Some heuristics are apply
# to avoid ugly line breaks.
# Minimum value: 0, maximum value: 1000, default value: 17.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_WRAP_THRESHOLD = 17
# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and # If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
# collaboration graphs will show the relations between templates and their # collaboration graphs will show the relations between templates and their
# instances. # instances.
@ -2556,9 +2649,11 @@ DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES GENERATE_LEGEND = YES
# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot # If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate
# files that are used to generate the various graphs. # files that are used to generate the various graphs.
#
# Note: This setting is not only used for dot files but also for msc and
# plantuml temporary files.
# The default value is: YES. # The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_CLEANUP = YES DOT_CLEANUP = YES

BIN
doc/ds-logo.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

BIN
doc/ds-logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

View File

@ -1,5 +1,5 @@
/* ---------------------------------------------------------------------------- /* ----------------------------------------------------------------------------
Copyright (c) 2018, Microsoft Research, Daan Leijen Copyright (c) 2018-2021, Microsoft Research, Daan Leijen
This is free software; you can redistribute it and/or modify it under the This is free software; you can redistribute it and/or modify it under the
terms of the MIT license. A copy of the license can be found in the file terms of the MIT license. A copy of the license can be found in the file
"LICENSE" at the root of this distribution. "LICENSE" at the root of this distribution.
@ -40,7 +40,7 @@ Notable aspects of the design include:
per mimalloc page, but for each page we have multiple free lists. In particular, there per mimalloc page, but for each page we have multiple free lists. In particular, there
is one list for thread-local `free` operations, and another one for concurrent `free` is one list for thread-local `free` operations, and another one for concurrent `free`
operations. Free-ing from another thread can now be a single CAS without needing operations. Free-ing from another thread can now be a single CAS without needing
sophisticated coordination between threads. Since there will be sophisticated coordination between threads. Since there will be
thousands of separate free lists, contention is naturally distributed over the heap, thousands of separate free lists, contention is naturally distributed over the heap,
and the chance of contending on a single location will be low -- this is quite and the chance of contending on a single location will be low -- this is quite
similar to randomized algorithms like skip lists where adding similar to randomized algorithms like skip lists where adding
@ -51,12 +51,12 @@ Notable aspects of the design include:
programs. programs.
- __secure__: _mimalloc_ can be build in secure mode, adding guard pages, - __secure__: _mimalloc_ can be build in secure mode, adding guard pages,
randomized allocation, encrypted free lists, etc. to protect against various randomized allocation, encrypted free lists, etc. to protect against various
heap vulnerabilities. The performance penalty is only around 3% on average heap vulnerabilities. The performance penalty is only around 5% on average
over our benchmarks. over our benchmarks.
- __first-class heaps__: efficiently create and use multiple heaps to allocate across different regions. - __first-class heaps__: efficiently create and use multiple heaps to allocate across different regions.
A heap can be destroyed at once instead of deallocating each object separately. A heap can be destroyed at once instead of deallocating each object separately.
- __bounded__: it does not suffer from _blowup_ \[1\], has bounded worst-case allocation - __bounded__: it does not suffer from _blowup_ \[1\], has bounded worst-case allocation
times (_wcat_), bounded space overhead (~0.2% meta-data, with at most 12.5% waste in allocation sizes), times (_wcat_), bounded space overhead (~0.2% meta-data, with low internal fragmentation),
and has no internal points of contention using only atomic operations. and has no internal points of contention using only atomic operations.
- __fast__: In our benchmarks (see [below](#performance)), - __fast__: In our benchmarks (see [below](#performance)),
_mimalloc_ outperforms all other leading allocators (_jemalloc_, _tcmalloc_, _Hoard_, etc), _mimalloc_ outperforms all other leading allocators (_jemalloc_, _tcmalloc_, _Hoard_, etc),
@ -413,6 +413,28 @@ void mi_register_error(mi_error_fun* errfun, void* arg);
/// This function is relatively fast. /// This function is relatively fast.
bool mi_is_in_heap_region(const void* p); bool mi_is_in_heap_region(const void* p);
/// Reserve OS memory for use by mimalloc. Reserved areas are used
/// before allocating from the OS again. By reserving a large area upfront,
/// allocation can be more efficient, and can be better managed on systems
/// without `mmap`/`VirtualAlloc` (like WASM for example).
/// @param size The size to reserve.
/// @param commit Commit the memory upfront.
/// @param allow_large Allow large OS pages (2MiB) to be used?
/// @return \a 0 if successful, and an error code otherwise (e.g. `ENOMEM`).
int mi_reserve_os_memory(size_t size, bool commit, bool allow_large);
/// Manage a particular memory area for use by mimalloc.
/// This is just like `mi_reserve_os_memory` except that the area should already be
/// allocated in some manner and available for use my mimalloc.
/// @param start Start of the memory area
/// @param size The size of the memory area.
/// @param commit Is the area already committed?
/// @param is_large Does it consist of large OS pages? Set this to \a true as well for memory
/// that should not be decommitted or protected (like rdma etc.)
/// @param is_zero Does the area consists of zero's?
/// @param numa_node Possible associated numa node or `-1`.
/// @return \a true if successful, and \a false on error.
bool mi_manage_os_memory(void* start, size_t size, bool is_committed, bool is_large, bool is_zero, int numa_node);
/// Reserve \a pages of huge OS pages (1GiB) evenly divided over \a numa_nodes nodes, /// Reserve \a pages of huge OS pages (1GiB) evenly divided over \a numa_nodes nodes,
/// but stops after at most `timeout_msecs` seconds. /// but stops after at most `timeout_msecs` seconds.
@ -476,9 +498,12 @@ void mi_process_info(size_t* elapsed_msecs, size_t* user_msecs, size_t* system_m
/// ///
/// \{ /// \{
/// The maximum supported alignment size (currently 1MiB).
#define MI_ALIGNMENT_MAX (1024*1024UL)
/// Allocate \a size bytes aligned by \a alignment. /// Allocate \a size bytes aligned by \a alignment.
/// @param size number of bytes to allocate. /// @param size number of bytes to allocate.
/// @param alignment the minimal alignment of the allocated memory. /// @param alignment the minimal alignment of the allocated memory. Must be less than #MI_ALIGNMENT_MAX.
/// @returns pointer to the allocated memory or \a NULL if out of memory. /// @returns pointer to the allocated memory or \a NULL if out of memory.
/// The returned pointer is aligned by \a alignment, i.e. /// The returned pointer is aligned by \a alignment, i.e.
/// `(uintptr_t)p % alignment == 0`. /// `(uintptr_t)p % alignment == 0`.
@ -777,19 +802,32 @@ typedef enum mi_option_e {
mi_option_show_errors, ///< Print error messages to `stderr`. mi_option_show_errors, ///< Print error messages to `stderr`.
mi_option_show_stats, ///< Print statistics to `stderr` when the program is done. mi_option_show_stats, ///< Print statistics to `stderr` when the program is done.
mi_option_verbose, ///< Print verbose messages to `stderr`. mi_option_verbose, ///< Print verbose messages to `stderr`.
// the following options are experimental // the following options are experimental
mi_option_eager_commit, ///< Eagerly commit segments (4MiB) (enabled by default). mi_option_eager_commit, ///< Eagerly commit segments (4MiB) (enabled by default).
mi_option_eager_region_commit, ///< Eagerly commit large (256MiB) memory regions (enabled by default, except on Windows)
mi_option_large_os_pages, ///< Use large OS pages (2MiB in size) if possible mi_option_large_os_pages, ///< Use large OS pages (2MiB in size) if possible
mi_option_reserve_huge_os_pages, ///< The number of huge OS pages (1GiB in size) to reserve at the start of the program. mi_option_reserve_huge_os_pages, ///< The number of huge OS pages (1GiB in size) to reserve at the start of the program.
mi_option_segment_cache, ///< The number of segments per thread to keep cached. mi_option_reserve_huge_os_pages_at, ///< Reserve huge OS pages at node N.
mi_option_reserve_os_memory, ///< Reserve specified amount of OS memory at startup, e.g. "1g" or "512m".
mi_option_segment_cache, ///< The number of segments per thread to keep cached (0).
mi_option_page_reset, ///< Reset page memory after \a mi_option_reset_delay milliseconds when it becomes free. mi_option_page_reset, ///< Reset page memory after \a mi_option_reset_delay milliseconds when it becomes free.
mi_option_abandoned_page_reset, //< Reset free page memory when a thread terminates.
mi_option_use_numa_nodes, ///< Pretend there are at most N NUMA nodes; Use 0 to use the actual detected NUMA nodes at runtime.
mi_option_eager_commit_delay, ///< the first N segments per thread are not eagerly committed (=1).
mi_option_os_tag, ///< OS tag to assign to mimalloc'd memory
mi_option_limit_os_alloc, ///< If set to 1, do not use OS memory for allocation (but only pre-reserved arenas)
// v1.x specific options
mi_option_eager_region_commit, ///< Eagerly commit large (256MiB) memory regions (enabled by default, except on Windows)
mi_option_segment_reset, ///< Experimental mi_option_segment_reset, ///< Experimental
mi_option_reset_delay, ///< Delay in milli-seconds before resetting a page (100ms by default) mi_option_reset_delay, ///< Delay in milli-seconds before resetting a page (100ms by default)
mi_option_use_numa_nodes, ///< Pretend there are at most N NUMA nodes mi_option_purge_decommits, ///< Experimental
mi_option_reset_decommits, ///< Experimental
mi_option_eager_commit_delay, ///< Experimental // v2.x specific options
mi_option_os_tag, ///< OS tag to assign to mimalloc'd memory mi_option_allow_purge, ///< Enable decommitting memory (=on)
mi_option_purge_delay, ///< Decommit page memory after N milli-seconds delay (25ms).
mi_option_segment_purge_delay, ///< Decommit large segment memory after N milli-seconds delay (500ms).
_mi_option_last _mi_option_last
} mi_option_t; } mi_option_t;
@ -828,8 +866,14 @@ void* mi_valloc(size_t size);
void* mi_pvalloc(size_t size); void* mi_pvalloc(size_t size);
void* mi_aligned_alloc(size_t alignment, size_t size); void* mi_aligned_alloc(size_t alignment, size_t size);
/// Correspond s to [reallocarray](https://www.freebsd.org/cgi/man.cgi?query=reallocarray&sektion=3&manpath=freebsd-release-ports)
/// in FreeBSD.
void* mi_reallocarray(void* p, size_t count, size_t size); void* mi_reallocarray(void* p, size_t count, size_t size);
/// Corresponds to [reallocarr](https://man.netbsd.org/reallocarr.3) in NetBSD.
int mi_reallocarr(void* p, size_t count, size_t size);
void mi_free_size(void* p, size_t size); void mi_free_size(void* p, size_t size);
void mi_free_size_aligned(void* p, size_t size, size_t alignment); void mi_free_size_aligned(void* p, size_t size, size_t alignment);
void mi_free_aligned(void* p, size_t alignment); void mi_free_aligned(void* p, size_t alignment);
@ -883,7 +927,7 @@ template<class T> struct mi_stl_allocator { }
/*! \page build Building /*! \page build Building
Checkout the sources from Github: Checkout the sources from GitHub:
``` ```
git clone https://github.com/microsoft/mimalloc git clone https://github.com/microsoft/mimalloc
``` ```
@ -1036,7 +1080,7 @@ or via environment variables.
- `MIMALLOC_PAGE_RESET=0`: by default, mimalloc will reset (or purge) OS pages when not in use to signal to the OS - `MIMALLOC_PAGE_RESET=0`: by default, mimalloc will reset (or purge) OS pages when not in use to signal to the OS
that the underlying physical memory can be reused. This can reduce memory fragmentation in long running (server) that the underlying physical memory can be reused. This can reduce memory fragmentation in long running (server)
programs. By setting it to `0` no such page resets will be done which can improve performance for programs that are not long programs. By setting it to `0` no such page resets will be done which can improve performance for programs that are not long
running. As an alternative, the `MIMALLOC_RESET_DELAY=`<msecs> can be set higher (100ms by default) to make the page running. As an alternative, the `MIMALLOC_DECOMMIT_DELAY=`<msecs> can be set higher (100ms by default) to make the page
reset occur less frequently instead of turning it off completely. reset occur less frequently instead of turning it off completely.
- `MIMALLOC_LARGE_OS_PAGES=1`: use large OS pages (2MiB) when available; for some workloads this can significantly - `MIMALLOC_LARGE_OS_PAGES=1`: use large OS pages (2MiB) when available; for some workloads this can significantly
improve performance. Use `MIMALLOC_VERBOSE` to check if the large OS pages are enabled -- usually one needs improve performance. Use `MIMALLOC_VERBOSE` to check if the large OS pages are enabled -- usually one needs
@ -1053,6 +1097,8 @@ or via environment variables.
`MIMALLOC_EAGER_COMMIT_DELAY=N` (`N` is 1 by default) to delay the initial `N` segments (of 4MiB) `MIMALLOC_EAGER_COMMIT_DELAY=N` (`N` is 1 by default) to delay the initial `N` segments (of 4MiB)
of a thread to not allocate in the huge OS pages; this prevents threads that are short lived of a thread to not allocate in the huge OS pages; this prevents threads that are short lived
and allocate just a little to take up space in the huge OS page area (which cannot be reset). and allocate just a little to take up space in the huge OS page area (which cannot be reset).
- `MIMALLOC_RESERVE_HUGE_OS_PAGES_AT=N`: where N is the numa node. This reserves the huge pages at a specific numa node.
(`N` is -1 by default to reserve huge pages evenly among the given number of numa nodes (or use the available ones as detected))
Use caution when using `fork` in combination with either large or huge OS pages: on a fork, the OS uses copy-on-write Use caution when using `fork` in combination with either large or huge OS pages: on a fork, the OS uses copy-on-write
for all pages in the original process including the huge OS pages. When any memory is now written in that area, the for all pages in the original process including the huge OS pages. When any memory is now written in that area, the
@ -1158,6 +1204,12 @@ void* calloc(size_t size, size_t n);
void* realloc(void* p, size_t newsize); void* realloc(void* p, size_t newsize);
void free(void* p); void free(void* p);
void* aligned_alloc(size_t alignment, size_t size);
char* strdup(const char* s);
char* strndup(const char* s, size_t n);
char* realpath(const char* fname, char* resolved_name);
// C++ // C++
void operator delete(void* p); void operator delete(void* p);
void operator delete[](void* p); void operator delete[](void* p);
@ -1177,16 +1229,24 @@ int posix_memalign(void** p, size_t alignment, size_t size);
// Linux // Linux
void* memalign(size_t alignment, size_t size); void* memalign(size_t alignment, size_t size);
void* aligned_alloc(size_t alignment, size_t size);
void* valloc(size_t size); void* valloc(size_t size);
void* pvalloc(size_t size); void* pvalloc(size_t size);
size_t malloc_usable_size(void *p); size_t malloc_usable_size(void *p);
void* reallocf(void* p, size_t newsize);
// macOS
void vfree(void* p);
size_t malloc_size(const void* p);
size_t malloc_good_size(size_t size);
// BSD // BSD
void* reallocarray( void* p, size_t count, size_t size ); void* reallocarray( void* p, size_t count, size_t size );
void* reallocf(void* p, size_t newsize); void* reallocf(void* p, size_t newsize);
void cfree(void* p); void cfree(void* p);
// NetBSD
int reallocarr(void* p, size_t count, size_t size);
// Windows // Windows
void* _expand(void* p, size_t newsize); void* _expand(void* p, size_t newsize);
size_t _msize(void* p); size_t _msize(void* p);
@ -1209,7 +1269,7 @@ synthetic benchmarks that see how the allocator behaves under more
extreme circumstances. extreme circumstances.
In our benchmarks, _mimalloc_ always outperforms all other leading In our benchmarks, _mimalloc_ always outperforms all other leading
allocators (_jemalloc_, _tcmalloc_, _Hoard_, etc) (Apr 2019), allocators (_jemalloc_, _tcmalloc_, _Hoard_, etc) (Jan 2021),
and usually uses less memory (up to 25% more in the worst case). and usually uses less memory (up to 25% more in the worst case).
A nice property is that it does *consistently* well over the wide A nice property is that it does *consistently* well over the wide
range of benchmarks. range of benchmarks.

BIN
doc/spades-logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

43
doc/unreal-logo.svg Normal file
View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
height="706.71118"
width="746.71118"
viewBox="-150.3282 -273.04775 810.70706 1447.2442"
version="1.1"
id="svg34"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs24">
<clipPath
id="a"
clipPathUnits="userSpaceOnUse">
<path
d="M 0,1024 H 1024 V 0 H 0 Z"
id="path21" />
</clipPath>
</defs>
<rect
style="fill:#b2b2b2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.04786;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect121"
width="1300.7299"
height="1264.0651"
x="-391.91745"
y="-186.69598"
rx="154.79872"
ry="154.79872" />
<path
d="m 693.86447,863.90527 v -94.746 h -35.855 v 122.747 h 120.26 v -28 z"
id="path26" />
<g
clip-path="url(#a)"
transform="matrix(1.33333,0,0,-1.33333,-408.39652,1133.2393)"
id="g32">
<path
d="m 498.837,117.958 h 20.085 c 0.498,-5.295 -1.063,-7.971 -5.392,-8.386 -4.293,-0.411 -8.612,-0.76 -12.92,-0.77 -17.903,-0.044 -19.822,2.052 -18.737,19.932 0.02,0.333 0.03,0.666 0.063,0.997 0.67,6.667 3.126,9.189 9.81,9.499 5.15,0.238 10.316,0.089 15.476,0.132 5.373,0.044 10.5,-0.337 11.806,-6.626 h 13.198 c 1.86,10.558 -1.6,16.306 -11.74,16.9 -13.059,0.767 -26.228,0.648 -39.293,-0.086 -8.782,-0.493 -13.292,-5.67 -13.804,-14.27 -0.444,-7.454 -0.42,-14.975 -0.007,-22.434 0.441,-7.953 4.16,-11.928 11.938,-13.918 2.87,-0.734 5.785,-1.29 8.68,-1.928 h 26 c 2.091,0.444 4.177,0.913 6.274,1.328 5.615,1.11 11.135,2.918 12.264,9.28 1.114,6.278 1.061,12.763 1.546,19.515 h -35.247 z m -103.4,63.438 v 91.393 h -26.424 v -69.795 l -54.236,70.22 H 273.38 V 181.28 h 26.308 v 68.354 l 1.226,0.31 53.645,-68.547 z m 47.577,45.635 v 26.323 c 12.208,0 24.12,0.002 36.033,-0.003 1.662,0 3.323,-0.048 4.985,-0.059 14.801,-0.1 16.353,-4.42 14.866,-18.979 -0.484,-4.738 -4.073,-7.103 -8.306,-7.175 -15.731,-0.268 -31.469,-0.107 -47.578,-0.107 m 56.443,-33.406 c 0.357,-4.063 0.548,-8.14 0.82,-12.3 h 26.391 c 0,5.758 0.219,11.061 -0.045,16.34 -0.581,11.61 -2.289,16.735 -13.599,18.696 -0.592,0.103 -1.114,0.614 -2.506,1.42 11.369,2.53 15.442,10.208 15.981,20.201 0.267,4.96 0.176,10.017 -0.484,14.932 -1.604,11.95 -5.993,16.673 -17.761,18.885 a 101.743,101.743 0 0 1 -17.843,1.741 c -22.818,0.197 -45.638,0.09 -68.458,0.066 -1.78,-0.002 -3.559,-0.22 -5.646,-0.36 v -91.884 h 26.535 v 25.35 c 6.04,0 11.509,0.111 16.972,-0.025 9.644,-0.24 19.344,-0.086 28.908,-1.129 7.832,-0.854 10.041,-4.046 10.735,-11.933 m 73.129,24.754 h 68.786 v 18.565 h -68.899 v 16.585 h 72.852 v 19.517 h -99.79 v -91.744 h 101.018 v 20.193 h -73.967 z m -319.109,52.037 c 0.004,0.918 -0.563,1.84 -0.847,2.708 h -26.34 c 0,-16.299 0.052,-32.104 -0.036,-47.909 -0.025,-4.314 -0.31,-8.644 -0.772,-12.935 -0.665,-6.161 -4.552,-10.04 -10.412,-10.334 -12.098,-0.61 -24.283,-1.056 -36.347,-0.266 -9.717,0.635 -12.873,4.996 -12.984,14.895 -0.19,16.997 -0.103,33.998 -0.188,50.997 -0.009,1.895 -0.385,3.789 -0.59,5.67 h -26.32 c 0,-22.846 -0.788,-45.02 0.27,-67.106 0.734,-15.35 7.1,-21.4 22.59,-23.992 22.481,-3.765 45.194,-3.61 67.677,-0.266 17.168,2.553 22.995,8.927 23.753,26.069 0.92,20.79 0.464,41.644 0.546,62.47 m 447.926,-53.371 19.515,38.362 19.723,-38.362 z m 2.8,56.306 -49.975,-92.133 h 28.863 l 8.345,15.905 h 59.333 l 8.375,-15.847 h 29.165 l -50.248,92.075 z m -264.917,-161.351 -1.233,-0.292 a 532757.74,532757.74 0 0 1 -30.02,38.7 h -23.4 v -51.93 h 14.433 v 37.887 l 1.47,0.522 30.288,-38.488 h 23.367 v 51.89 h -14.904 z m 187.996,-0.026 -1.193,-0.31 c -9.93,12.813 -19.858,25.627 -29.476,38.039 H 573.309 V 98.583 h 14.777 v 39.2 l 30.889,-39.43 h 23.009 v 51.189 h -14.702 z m -295.244,7.284 h 39.176 v 10.717 H 332.04 v 9.647 h 41.322 V 150.45 H 317.11 V 98.519 h 57.303 v 11.039 h -42.375 z m 338.914,0.018 h 38.455 v 10.44 H 671.1 v 9.635 h 40.57 v 10.3 H 655.83 V 98.556 h 56.742 v 10.952 h -41.62 z M 545.666,98.416 h 14.301 v 51.189 H 545.666 Z M 312.554,585.913 c 0,0 -10.463,51.999 44.874,114.973 55.342,62.972 96.863,85.871 141.707,97.799 l -0.078,-0.046 0.17,0.046 c 0,0 -35.227,-20.517 -35.227,-51.522 0,-9 1.435,-15.184 3.423,-19.315 2.638,-5.488 6.816,-7.354 10.567,-7.372 3.16,-0.018 5.01,1.281 9.01,2.834 V 555.386 c 0,0 0.433,-2.707 2.863,-5.915 3.5,-4.613 9,-10.243 19.335,-10.3 17.629,0.113 39.802,20.026 39.802,20.026 v 135.964 c 0,13.832 -9.9,30.53 -20.39,36.259 0,0 1.43,0.09 3.744,0.089 6.926,0.002 21.784,-0.79 30.063,-7.115 2.3,2.665 39.418,44.665 105.466,57.589 l -0.032,-0.037 0.18,0.037 c 0,0 -36.531,-43.016 -47.981,-64.348 -2.035,-0.121 -2.332,-40.471 -1.993,-80.79 0.329,-38.92 1.253,-77.818 1.789,-80.509 0,0 3.898,-5.794 13.824,-5.844 11.196,-0.057 30.063,7.195 59.643,38.288 l -10e-4,-10e-4 v 10e-4 c 0,0 -0.78,-1.771 -2.35,-4.908 -8.476,-16.938 -39.974,-73.721 -95.924,-106.725 l -0.003,0.003 -0.005,-0.003 -36.29,30.693 -0.927,0.774 -39.58,-41.967 -0.06,0.006 -0.005,-0.006 c 0,0 -90.232,7.633 -127.92,62.015 l 0.179,-0.065 -0.047,0.065 c 0,0 5.707,-2.221 12.148,-2.342 7.547,-0.138 15.472,2.619 15.472,15.229 v 127.85 c 0,6.529 -4.495,13.853 -14.362,13.825 -8.874,-0.023 -21.614,-5.994 -39.01,-23.843 -36.734,-37.685 -51.99,-73.468 -51.99,-73.468 l -0.025,0.136 -0.06,-0.136 M 513,369.156 c 70.386,0 136.56,27.41 186.33,77.18 49.77,49.771 77.18,115.944 77.18,186.33 0,70.386 -27.41,136.559 -77.18,186.33 -49.77,49.77 -115.944,77.18 -186.33,77.18 -70.386,0 -136.56,-27.41 -186.33,-77.18 -49.77,-49.771 -77.18,-115.944 -77.18,-186.33 0,-70.386 27.41,-136.559 77.18,-186.33 49.77,-49.77 115.944,-77.18 186.33,-77.18"
id="path28" />
<path
d="m 513,908.307 c 152.232,0 275.641,-123.409 275.641,-275.64 0,-152.233 -123.409,-275.642 -275.641,-275.642 -152.232,0 -275.641,123.41 -275.641,275.641 0,152.232 123.409,275.641 275.641,275.641 m 0,-559.119 c 75.72,0 146.907,29.487 200.449,83.03 53.542,53.541 83.028,124.728 83.028,200.448 0,75.72 -29.486,146.907 -83.028,200.45 -53.542,53.54 -124.729,83.026 -200.449,83.026 -75.72,0 -146.907,-29.486 -200.449,-83.028 -53.542,-53.542 -83.028,-124.73 -83.028,-200.449 0,-75.72 29.486,-146.907 83.028,-200.449 C 366.093,378.674 437.28,349.188 513,349.188"
id="path30" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@ -3,7 +3,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mi-malloc: Data Structures</title> <title>mi-malloc: Data Structures</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -13,10 +13,6 @@
<script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script> <script type="text/javascript" src="search/search.js"></script>
@ -37,21 +33,21 @@
<td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td> <td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mi-malloc <div id="projectname">mi-malloc
&#160;<span id="projectnumber">1.6</span> &#160;<span id="projectnumber">1.7/2.0</span>
</div> </div>
</td> </td>
<td> <div id="MSearchBox" class="MSearchBoxInactive"> <td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left"> <span class="left">
<img id="MSearchSelect" src="search/mag_sel.png" <img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()" onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()" onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/> alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S" <input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)" onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)" onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/> onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right"> </span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span> </span>
</div> </div>
</td> </td>
@ -60,10 +56,10 @@
</table> </table>
</div> </div>
<!-- end header part --> <!-- end header part -->
<!-- Generated by Doxygen 1.8.15 --> <!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search'); var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */ /* @license-end */
</script> </script>
</div><!-- top --> </div><!-- top -->
@ -73,13 +69,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-sync" class="sync"></div> <div id="nav-sync" class="sync"></div>
</div> </div>
</div> </div>
<div id="splitbar" style="-moz-user-select:none;" <div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle"> class="ui-resizable-handle">
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('annotated.html','');}); $(document).ready(function(){initNavTree('annotated.html',''); initResizable(); });
/* @license-end */ /* @license-end */
</script> </script>
<div id="doc-content"> <div id="doc-content">
@ -92,7 +88,7 @@ $(document).ready(function(){initNavTree('annotated.html','');});
<!-- iframe showing the search results (closed by default) --> <!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow"> <div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" <iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults"> name="MSearchResults" id="MSearchResults">
</iframe> </iframe>
</div> </div>
@ -113,9 +109,7 @@ $(document).ready(function(){initNavTree('annotated.html','');});
<!-- start footer part --> <!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul> <ul>
<li class="footer">Generated by <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul> </ul>
</div> </div>
</body> </body>

View File

@ -3,7 +3,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mi-malloc: Performance</title> <title>mi-malloc: Performance</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -13,10 +13,6 @@
<script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script> <script type="text/javascript" src="search/search.js"></script>
@ -37,21 +33,21 @@
<td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td> <td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mi-malloc <div id="projectname">mi-malloc
&#160;<span id="projectnumber">1.6</span> &#160;<span id="projectnumber">1.7/2.0</span>
</div> </div>
</td> </td>
<td> <div id="MSearchBox" class="MSearchBoxInactive"> <td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left"> <span class="left">
<img id="MSearchSelect" src="search/mag_sel.png" <img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()" onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()" onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/> alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S" <input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)" onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)" onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/> onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right"> </span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span> </span>
</div> </div>
</td> </td>
@ -60,10 +56,10 @@
</table> </table>
</div> </div>
<!-- end header part --> <!-- end header part -->
<!-- Generated by Doxygen 1.8.15 --> <!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search'); var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */ /* @license-end */
</script> </script>
</div><!-- top --> </div><!-- top -->
@ -73,13 +69,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-sync" class="sync"></div> <div id="nav-sync" class="sync"></div>
</div> </div>
</div> </div>
<div id="splitbar" style="-moz-user-select:none;" <div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle"> class="ui-resizable-handle">
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('bench.html','');}); $(document).ready(function(){initNavTree('bench.html',''); initResizable(); });
/* @license-end */ /* @license-end */
</script> </script>
<div id="doc-content"> <div id="doc-content">
@ -92,7 +88,7 @@ $(document).ready(function(){initNavTree('bench.html','');});
<!-- iframe showing the search results (closed by default) --> <!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow"> <div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" <iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults"> name="MSearchResults" id="MSearchResults">
</iframe> </iframe>
</div> </div>
@ -103,17 +99,15 @@ $(document).ready(function(){initNavTree('bench.html','');});
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<div class="textblock"><p>We tested <em>mimalloc</em> against many other top allocators over a wide range of benchmarks, ranging from various real world programs to synthetic benchmarks that see how the allocator behaves under more extreme circumstances.</p> <div class="textblock"><p>We tested <em>mimalloc</em> against many other top allocators over a wide range of benchmarks, ranging from various real world programs to synthetic benchmarks that see how the allocator behaves under more extreme circumstances.</p>
<p>In our benchmarks, <em>mimalloc</em> always outperforms all other leading allocators (<em>jemalloc</em>, <em>tcmalloc</em>, <em>Hoard</em>, etc) (Apr 2019), and usually uses less memory (up to 25% more in the worst case). A nice property is that it does <em>consistently</em> well over the wide range of benchmarks.</p> <p>In our benchmarks, <em>mimalloc</em> always outperforms all other leading allocators (<em>jemalloc</em>, <em>tcmalloc</em>, <em>Hoard</em>, etc) (Jan 2021), and usually uses less memory (up to 25% more in the worst case). A nice property is that it does <em>consistently</em> well over the wide range of benchmarks.</p>
<p>See the <a href="https://github.com/microsoft/mimalloc#Performance">Performance</a> section in the <em>mimalloc</em> repository for benchmark results, or the the technical report for detailed benchmark results. </p> <p>See the <a href="https://github.com/microsoft/mimalloc#Performance">Performance</a> section in the <em>mimalloc</em> repository for benchmark results, or the the technical report for detailed benchmark results. </p>
</div></div><!-- PageDoc --> </div></div><!-- contents -->
</div><!-- contents --> </div><!-- PageDoc -->
</div><!-- doc-content --> </div><!-- doc-content -->
<!-- start footer part --> <!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul> <ul>
<li class="footer">Generated by <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul> </ul>
</div> </div>
</body> </body>

View File

@ -3,7 +3,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mi-malloc: Building</title> <title>mi-malloc: Building</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -13,10 +13,6 @@
<script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script> <script type="text/javascript" src="search/search.js"></script>
@ -37,21 +33,21 @@
<td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td> <td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mi-malloc <div id="projectname">mi-malloc
&#160;<span id="projectnumber">1.6</span> &#160;<span id="projectnumber">1.7/2.0</span>
</div> </div>
</td> </td>
<td> <div id="MSearchBox" class="MSearchBoxInactive"> <td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left"> <span class="left">
<img id="MSearchSelect" src="search/mag_sel.png" <img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()" onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()" onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/> alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S" <input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)" onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)" onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/> onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right"> </span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span> </span>
</div> </div>
</td> </td>
@ -60,10 +56,10 @@
</table> </table>
</div> </div>
<!-- end header part --> <!-- end header part -->
<!-- Generated by Doxygen 1.8.15 --> <!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search'); var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */ /* @license-end */
</script> </script>
</div><!-- top --> </div><!-- top -->
@ -73,13 +69,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-sync" class="sync"></div> <div id="nav-sync" class="sync"></div>
</div> </div>
</div> </div>
<div id="splitbar" style="-moz-user-select:none;" <div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle"> class="ui-resizable-handle">
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('build.html','');}); $(document).ready(function(){initNavTree('build.html',''); initResizable(); });
/* @license-end */ /* @license-end */
</script> </script>
<div id="doc-content"> <div id="doc-content">
@ -92,7 +88,7 @@ $(document).ready(function(){initNavTree('build.html','');});
<!-- iframe showing the search results (closed by default) --> <!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow"> <div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" <iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults"> name="MSearchResults" id="MSearchResults">
</iframe> </iframe>
</div> </div>
@ -102,28 +98,39 @@ $(document).ready(function(){initNavTree('build.html','');});
<div class="title">Building </div> </div> <div class="title">Building </div> </div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<div class="textblock"><p>Checkout the sources from Github: </p><div class="fragment"><div class="line">git clone https:<span class="comment">//github.com/microsoft/mimalloc</span></div></div><!-- fragment --><h2>Windows</h2> <div class="textblock"><p>Checkout the sources from GitHub: </p><div class="fragment"><div class="line">git clone https://github.com/microsoft/mimalloc</div>
</div><!-- fragment --><h2>Windows</h2>
<p>Open <code>ide/vs2019/mimalloc.sln</code> in Visual Studio 2019 and build (or <code>ide/vs2017/mimalloc.sln</code>). The <code>mimalloc</code> project builds a static library (in <code>out/msvc-x64</code>), while the <code>mimalloc-override</code> project builds a DLL for overriding malloc in the entire program.</p> <p>Open <code>ide/vs2019/mimalloc.sln</code> in Visual Studio 2019 and build (or <code>ide/vs2017/mimalloc.sln</code>). The <code>mimalloc</code> project builds a static library (in <code>out/msvc-x64</code>), while the <code>mimalloc-override</code> project builds a DLL for overriding malloc in the entire program.</p>
<h2>macOS, Linux, BSD, etc.</h2> <h2>macOS, Linux, BSD, etc.</h2>
<p>We use <a href="https://cmake.org"><code>cmake</code></a><sup>1</sup> as the build system:</p> <p>We use <a href="https://cmake.org"><code>cmake</code></a><sup>1</sup> as the build system:</p>
<div class="fragment"><div class="line">&gt; mkdir -p out/release</div><div class="line">&gt; cd out/release</div><div class="line">&gt; cmake ../..</div><div class="line">&gt; make</div></div><!-- fragment --><p> This builds the library as a shared (dynamic) library (<code>.so</code> or <code>.dylib</code>), a static library (<code>.a</code>), and as a single object file (<code>.o</code>).</p> <div class="fragment"><div class="line">&gt; mkdir -p out/release</div>
<div class="line">&gt; cd out/release</div>
<div class="line">&gt; cmake ../..</div>
<div class="line">&gt; make</div>
</div><!-- fragment --><p> This builds the library as a shared (dynamic) library (<code>.so</code> or <code>.dylib</code>), a static library (<code>.a</code>), and as a single object file (<code>.o</code>).</p>
<p><code>&gt; sudo make install</code> (install the library and header files in <code>/usr/local/lib</code> and <code>/usr/local/include</code>)</p> <p><code>&gt; sudo make install</code> (install the library and header files in <code>/usr/local/lib</code> and <code>/usr/local/include</code>)</p>
<p>You can build the debug version which does many internal checks and maintains detailed statistics as:</p> <p>You can build the debug version which does many internal checks and maintains detailed statistics as:</p>
<div class="fragment"><div class="line">&gt; mkdir -p out/debug</div><div class="line">&gt; cd out/debug</div><div class="line">&gt; cmake -DCMAKE_BUILD_TYPE=Debug ../..</div><div class="line">&gt; make</div></div><!-- fragment --><p> This will name the shared library as <code>libmimalloc-debug.so</code>.</p> <div class="fragment"><div class="line">&gt; mkdir -p out/debug</div>
<p>Finally, you can build a <em>secure</em> version that uses guard pages, encrypted free lists, etc, as: </p><div class="fragment"><div class="line">&gt; mkdir -p out/secure</div><div class="line">&gt; cd out/secure</div><div class="line">&gt; cmake -DMI_SECURE=ON ../..</div><div class="line">&gt; make</div></div><!-- fragment --><p> This will name the shared library as <code>libmimalloc-secure.so</code>. Use <code>ccmake</code><sup>2</sup> instead of <code>cmake</code> to see and customize all the available build options.</p> <div class="line">&gt; cd out/debug</div>
<div class="line">&gt; cmake -DCMAKE_BUILD_TYPE=Debug ../..</div>
<div class="line">&gt; make</div>
</div><!-- fragment --><p> This will name the shared library as <code>libmimalloc-debug.so</code>.</p>
<p>Finally, you can build a <em>secure</em> version that uses guard pages, encrypted free lists, etc, as: </p><div class="fragment"><div class="line">&gt; mkdir -p out/secure</div>
<div class="line">&gt; cd out/secure</div>
<div class="line">&gt; cmake -DMI_SECURE=ON ../..</div>
<div class="line">&gt; make</div>
</div><!-- fragment --><p> This will name the shared library as <code>libmimalloc-secure.so</code>. Use <code>ccmake</code><sup>2</sup> instead of <code>cmake</code> to see and customize all the available build options.</p>
<p>Notes:</p><ol type="1"> <p>Notes:</p><ol type="1">
<li>Install CMake: <code>sudo apt-get install cmake</code></li> <li>Install CMake: <code>sudo apt-get install cmake</code></li>
<li>Install CCMake: <code>sudo apt-get install cmake-curses-gui</code> </li> <li>Install CCMake: <code>sudo apt-get install cmake-curses-gui</code> </li>
</ol> </ol>
</div></div><!-- PageDoc --> </div></div><!-- contents -->
</div><!-- contents --> </div><!-- PageDoc -->
</div><!-- doc-content --> </div><!-- doc-content -->
<!-- start footer part --> <!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul> <ul>
<li class="footer">Generated by <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul> </ul>
</div> </div>
</body> </body>

View File

@ -3,7 +3,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mi-malloc: Data Structure Index</title> <title>mi-malloc: Data Structure Index</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -13,10 +13,6 @@
<script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script> <script type="text/javascript" src="search/search.js"></script>
@ -37,21 +33,21 @@
<td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td> <td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mi-malloc <div id="projectname">mi-malloc
&#160;<span id="projectnumber">1.6</span> &#160;<span id="projectnumber">1.7/2.0</span>
</div> </div>
</td> </td>
<td> <div id="MSearchBox" class="MSearchBoxInactive"> <td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left"> <span class="left">
<img id="MSearchSelect" src="search/mag_sel.png" <img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()" onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()" onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/> alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S" <input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)" onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)" onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/> onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right"> </span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span> </span>
</div> </div>
</td> </td>
@ -60,10 +56,10 @@
</table> </table>
</div> </div>
<!-- end header part --> <!-- end header part -->
<!-- Generated by Doxygen 1.8.15 --> <!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search'); var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */ /* @license-end */
</script> </script>
</div><!-- top --> </div><!-- top -->
@ -73,13 +69,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-sync" class="sync"></div> <div id="nav-sync" class="sync"></div>
</div> </div>
</div> </div>
<div id="splitbar" style="-moz-user-select:none;" <div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle"> class="ui-resizable-handle">
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classes.html','');}); $(document).ready(function(){initNavTree('classes.html',''); initResizable(); });
/* @license-end */ /* @license-end */
</script> </script>
<div id="doc-content"> <div id="doc-content">
@ -92,7 +88,7 @@ $(document).ready(function(){initNavTree('classes.html','');});
<!-- iframe showing the search results (closed by default) --> <!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow"> <div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" <iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults"> name="MSearchResults" id="MSearchResults">
</iframe> </iframe>
</div> </div>
@ -102,23 +98,18 @@ $(document).ready(function(){initNavTree('classes.html','');});
<div class="title">Data Structure Index</div> </div> <div class="title">Data Structure Index</div> </div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<div class="qindex"><a class="qindex" href="#letter_m">m</a></div> <div class="qindex"><a class="qindex" href="#letter_M">M</a></div>
<table class="classindex"> <div class="classindex">
<tr><td rowspan="2" valign="bottom"><a name="letter_m"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;m&#160;&#160;</div></td></tr></table> <dl class="classindex even">
</td><td valign="top"><a class="el" href="group__cpp.html#structmi__stl__allocator">mi_stl_allocator</a>&#160;&#160;&#160;</td><td></td></tr> <dt class="alphachar"><a name="letter_M">M</a></dt>
<tr><td></td><td></td><td></td></tr> <dd><a class="el" href="group__analysis.html#structmi__heap__area__t">mi_heap_area_t</a></dd><dd><a class="el" href="group__cpp.html#structmi__stl__allocator">mi_stl_allocator</a></dd></dl>
<tr><td valign="top"><a class="el" href="group__analysis.html#structmi__heap__area__t">mi_heap_area_t</a>&#160;&#160;&#160;</td><td></td><td></td></tr> </div>
<tr><td></td><td></td><td></td></tr>
</table>
<div class="qindex"><a class="qindex" href="#letter_m">m</a></div>
</div><!-- contents --> </div><!-- contents -->
</div><!-- doc-content --> </div><!-- doc-content -->
<!-- start footer part --> <!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul> <ul>
<li class="footer">Generated by <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul> </ul>
</div> </div>
</body> </body>

View File

@ -1,4 +1,4 @@
/* The standard CSS for doxygen 1.8.15 */ /* The standard CSS for doxygen 1.9.1 */
body, table, div, p, dl { body, table, div, p, dl {
font: 400 14px/22px Roboto,sans-serif; font: 400 14px/22px Roboto,sans-serif;
@ -53,17 +53,24 @@ dt {
font-weight: bold; font-weight: bold;
} }
div.multicol { ul.multicol {
-moz-column-gap: 1em; -moz-column-gap: 1em;
-webkit-column-gap: 1em; -webkit-column-gap: 1em;
column-gap: 1em;
-moz-column-count: 3; -moz-column-count: 3;
-webkit-column-count: 3; -webkit-column-count: 3;
column-count: 3;
} }
p.startli, p.startdd { p.startli, p.startdd {
margin-top: 2px; margin-top: 2px;
} }
th p.starttd, th p.intertd, th p.endtd {
font-size: 100%;
font-weight: 700;
}
p.starttd { p.starttd {
margin-top: 0px; margin-top: 0px;
} }
@ -96,30 +103,96 @@ caption {
} }
span.legend { span.legend {
font-size: 70%; font-size: 70%;
text-align: center;
}
h3.version {
font-size: 90%;
text-align: center;
}
div.qindex, div.navtab{
background-color: #D6D9D9;
border: 1px solid #636C6D;
text-align: center; text-align: center;
} }
div.qindex, div.navpath { h3.version {
width: 100%; font-size: 90%;
line-height: 140%; text-align: center;
} }
div.navtab { div.navtab {
margin-right: 15px; border-right: 1px solid #636C6D;
padding-right: 15px;
text-align: right;
line-height: 110%;
} }
div.navtab table {
border-spacing: 0;
}
td.navtab {
padding-right: 6px;
padding-left: 6px;
}
td.navtabHL {
background-image: url('tab_a.png');
background-repeat:repeat-x;
padding-right: 6px;
padding-left: 6px;
}
td.navtabHL a, td.navtabHL a:visited {
color: #fff;
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
}
a.navtab {
font-weight: bold;
}
div.qindex{
text-align: center;
width: 100%;
line-height: 140%;
font-size: 130%;
color: #A0A0A0;
}
dt.alphachar{
font-size: 180%;
font-weight: bold;
}
.alphachar a{
color: black;
}
.alphachar a:hover, .alphachar a:visited{
text-decoration: none;
}
.classindex dl {
padding: 25px;
column-count:1
}
.classindex dd {
display:inline-block;
margin-left: 50px;
width: 90%;
line-height: 1.15em;
}
.classindex dl.odd {
background-color: #F0F1F1;
}
@media(min-width: 1120px) {
.classindex dl {
column-count:2
}
}
@media(min-width: 1320px) {
.classindex dl {
column-count:3
}
}
/* @group Link Styling */ /* @group Link Styling */
a { a {
@ -136,17 +209,6 @@ a:hover {
text-decoration: underline; text-decoration: underline;
} }
a.qindex {
font-weight: bold;
}
a.qindexHL {
font-weight: bold;
background-color: #5B6364;
color: #FFFFFF;
border: 1px double #464C4D;
}
.contents a.qindexHL:visited { .contents a.qindexHL:visited {
color: #FFFFFF; color: #FFFFFF;
} }
@ -159,11 +221,11 @@ a.elRef {
} }
a.code, a.code:visited, a.line, a.line:visited { a.code, a.code:visited, a.line, a.line:visited {
color: #171919; color: #171919;
} }
a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
color: #171919; color: #171919;
} }
/* @end */ /* @end */
@ -349,7 +411,7 @@ p.formulaDsp {
} }
img.formulaDsp { img.formulaDsp {
} }
img.formulaInl, img.inline { img.formulaInl, img.inline {
@ -407,20 +469,20 @@ span.charliteral {
color: #008080 color: #008080
} }
span.vhdldigit { span.vhdldigit {
color: #ff00ff color: #ff00ff
} }
span.vhdlchar { span.vhdlchar {
color: #000000 color: #000000
} }
span.vhdlkeyword { span.vhdlkeyword {
color: #700070 color: #700070
} }
span.vhdllogic { span.vhdllogic {
color: #ff0000 color: #ff0000
} }
blockquote { blockquote {
@ -533,7 +595,7 @@ table.memberdecls {
white-space: nowrap; white-space: nowrap;
} }
.memItemRight { .memItemRight, .memTemplItemRight {
width: 100%; width: 100%;
} }
@ -645,9 +707,9 @@ table.memberdecls {
} }
.memdoc, dl.reflist dd { .memdoc, dl.reflist dd {
border-bottom: 1px solid #697273; border-bottom: 1px solid #697273;
border-left: 1px solid #697273; border-left: 1px solid #697273;
border-right: 1px solid #697273; border-right: 1px solid #697273;
padding: 6px 10px 2px 10px; padding: 6px 10px 2px 10px;
background-color: #F7F8F8; background-color: #F7F8F8;
border-top-width: 0; border-top-width: 0;
@ -699,18 +761,18 @@ dl.reflist dd {
.params, .retval, .exception, .tparams { .params, .retval, .exception, .tparams {
margin-left: 0px; margin-left: 0px;
padding-left: 0px; padding-left: 0px;
} }
.params .paramname, .retval .paramname, .tparams .paramname { .params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname {
font-weight: bold; font-weight: bold;
vertical-align: top; vertical-align: top;
} }
.params .paramtype, .tparams .paramtype { .params .paramtype, .tparams .paramtype {
font-style: italic; font-style: italic;
vertical-align: top; vertical-align: top;
} }
.params .paramdir, .tparams .paramdir { .params .paramdir, .tparams .paramdir {
font-family: "courier new",courier,monospace; font-family: "courier new",courier,monospace;
vertical-align: top; vertical-align: top;
@ -966,8 +1028,8 @@ table.fieldtable {
.fieldtable td.fielddoc p:first-child { .fieldtable td.fielddoc p:first-child {
margin-top: 0px; margin-top: 0px;
} }
.fieldtable td.fielddoc p:last-child { .fieldtable td.fielddoc p:last-child {
margin-bottom: 2px; margin-bottom: 2px;
} }
@ -1042,7 +1104,7 @@ table.fieldtable {
color: #040404; color: #040404;
font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
text-decoration: none; text-decoration: none;
} }
.navpath li.navelem a:hover .navpath li.navelem a:hover
@ -1071,7 +1133,7 @@ div.summary
padding-right: 5px; padding-right: 5px;
width: 50%; width: 50%;
text-align: right; text-align: right;
} }
div.summary a div.summary a
{ {
@ -1086,7 +1148,7 @@ table.classindex
margin-right: 3%; margin-right: 3%;
width: 94%; width: 94%;
border: 0; border: 0;
border-spacing: 0; border-spacing: 0;
padding: 0; padding: 0;
} }
@ -1266,12 +1328,12 @@ dl.section dd {
vertical-align: bottom; vertical-align: bottom;
border-collapse: separate; border-collapse: separate;
} }
#projectlogo img #projectlogo img
{ {
border: 0px none; border: 0px none;
} }
#projectalign #projectalign
{ {
vertical-align: middle; vertical-align: middle;
@ -1283,7 +1345,7 @@ dl.section dd {
margin: 0px; margin: 0px;
padding: 2px 0px; padding: 2px 0px;
} }
#projectbrief #projectbrief
{ {
font: 120% Tahoma, Arial,sans-serif; font: 120% Tahoma, Arial,sans-serif;
@ -1351,10 +1413,12 @@ dl.citelist dt {
font-weight:bold; font-weight:bold;
margin-right:10px; margin-right:10px;
padding:5px; padding:5px;
text-align:right;
width:52px;
} }
dl.citelist dd { dl.citelist dd {
margin:2px 0; margin:2px 0 2px 72px;
padding:5px 0; padding:5px 0;
} }
@ -1399,7 +1463,7 @@ div.toc ul {
list-style: none outside none; list-style: none outside none;
border: medium none; border: medium none;
padding: 0px; padding: 0px;
} }
div.toc li.level1 { div.toc li.level1 {
margin-left: 0px; margin-left: 0px;
@ -1417,6 +1481,12 @@ div.toc li.level4 {
margin-left: 45px; margin-left: 45px;
} }
span.emoji {
/* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html
* font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort;
*/
}
.PageDocRTL-title div.toc li.level1 { .PageDocRTL-title div.toc li.level1 {
margin-left: 0 !important; margin-left: 0 !important;
margin-right: 0; margin-right: 0;
@ -1654,47 +1724,6 @@ tr.heading h2 {
/* @group Markdown */ /* @group Markdown */
/*
table.markdownTable {
border-collapse:collapse;
margin-top: 4px;
margin-bottom: 4px;
}
table.markdownTable td, table.markdownTable th {
border: 1px solid #060606;
padding: 3px 7px 2px;
}
table.markdownTableHead tr {
}
table.markdownTableBodyLeft td, table.markdownTable th {
border: 1px solid #060606;
padding: 3px 7px 2px;
}
th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone {
background-color: #0B0C0C;
color: #FFFFFF;
font-size: 110%;
padding-bottom: 4px;
padding-top: 5px;
}
th.markdownTableHeadLeft {
text-align: left
}
th.markdownTableHeadRight {
text-align: right
}
th.markdownTableHeadCenter {
text-align: center
}
*/
table.markdownTable { table.markdownTable {
border-collapse:collapse; border-collapse:collapse;
margin-top: 4px; margin-top: 4px;
@ -1754,11 +1783,10 @@ table.DocNodeLTR {
tt, code, kbd, samp tt, code, kbd, samp
{ {
display: inline-block; display: inline-block;
direction:ltr; direction:ltr;
} }
/* @end */ /* @end */
u { u {
text-decoration: underline; text-decoration: underline;
} }

View File

@ -1,25 +1,26 @@
/* /*
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the JavaScript code in this file.
JavaScript code in this file.
Copyright (C) 1997-2017 by Dimitri van Heesch The MIT License (MIT)
This program is free software; you can redistribute it and/or modify Copyright (C) 1997-2020 by Dimitri van Heesch
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful, Permission is hereby granted, free of charge, to any person obtaining a copy of this software
but WITHOUT ANY WARRANTY; without even the implied warranty of and associated documentation files (the "Software"), to deal in the Software without restriction,
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the including without limitation the rights to use, copy, modify, merge, publish, distribute,
GNU General Public License for more details. sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
You should have received a copy of the GNU General Public License along The above copyright notice and this permission notice shall be included in all copies or
with this program; if not, write to the Free Software Foundation, Inc., substantial portions of the Software.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
@licend The above is the entire license notice THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
for the JavaScript code in this file BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/ */
function toggleVisibility(linkObj) function toggleVisibility(linkObj)
{ {

View File

@ -3,7 +3,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mi-malloc: Environment Options</title> <title>mi-malloc: Environment Options</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -13,10 +13,6 @@
<script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script> <script type="text/javascript" src="search/search.js"></script>
@ -37,21 +33,21 @@
<td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td> <td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mi-malloc <div id="projectname">mi-malloc
&#160;<span id="projectnumber">1.6</span> &#160;<span id="projectnumber">1.7/2.0</span>
</div> </div>
</td> </td>
<td> <div id="MSearchBox" class="MSearchBoxInactive"> <td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left"> <span class="left">
<img id="MSearchSelect" src="search/mag_sel.png" <img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()" onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()" onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/> alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S" <input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)" onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)" onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/> onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right"> </span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span> </span>
</div> </div>
</td> </td>
@ -60,10 +56,10 @@
</table> </table>
</div> </div>
<!-- end header part --> <!-- end header part -->
<!-- Generated by Doxygen 1.8.15 --> <!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search'); var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */ /* @license-end */
</script> </script>
</div><!-- top --> </div><!-- top -->
@ -73,13 +69,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-sync" class="sync"></div> <div id="nav-sync" class="sync"></div>
</div> </div>
</div> </div>
<div id="splitbar" style="-moz-user-select:none;" <div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle"> class="ui-resizable-handle">
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('environment.html','');}); $(document).ready(function(){initNavTree('environment.html',''); initResizable(); });
/* @license-end */ /* @license-end */
</script> </script>
<div id="doc-content"> <div id="doc-content">
@ -92,7 +88,7 @@ $(document).ready(function(){initNavTree('environment.html','');});
<!-- iframe showing the search results (closed by default) --> <!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow"> <div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" <iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults"> name="MSearchResults" id="MSearchResults">
</iframe> </iframe>
</div> </div>
@ -110,17 +106,16 @@ $(document).ready(function(){initNavTree('environment.html','');});
<li><code>MIMALLOC_PAGE_RESET=0</code>: by default, mimalloc will reset (or purge) OS pages when not in use to signal to the OS that the underlying physical memory can be reused. This can reduce memory fragmentation in long running (server) programs. By setting it to <code>0</code> no such page resets will be done which can improve performance for programs that are not long running. As an alternative, the <code>MIMALLOC_RESET_DELAY=</code>&lt;msecs&gt; can be set higher (100ms by default) to make the page reset occur less frequently instead of turning it off completely.</li> <li><code>MIMALLOC_PAGE_RESET=0</code>: by default, mimalloc will reset (or purge) OS pages when not in use to signal to the OS that the underlying physical memory can be reused. This can reduce memory fragmentation in long running (server) programs. By setting it to <code>0</code> no such page resets will be done which can improve performance for programs that are not long running. As an alternative, the <code>MIMALLOC_RESET_DELAY=</code>&lt;msecs&gt; can be set higher (100ms by default) to make the page reset occur less frequently instead of turning it off completely.</li>
<li><code>MIMALLOC_LARGE_OS_PAGES=1</code>: use large OS pages (2MiB) when available; for some workloads this can significantly improve performance. Use <code>MIMALLOC_VERBOSE</code> to check if the large OS pages are enabled &ndash; usually one needs to explicitly allow large OS pages (as on <a href="https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/enable-the-lock-pages-in-memory-option-windows?view=sql-server-2017">Windows</a> and <a href="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/tuning_and_optimizing_red_hat_enterprise_linux_for_oracle_9i_and_10g_databases/sect-oracle_9i_and_10g_tuning_guide-large_memory_optimization_big_pages_and_huge_pages-configuring_huge_pages_in_red_hat_enterprise_linux_4_or_5">Linux</a>). However, sometimes the OS is very slow to reserve contiguous physical memory for large OS pages so use with care on systems that can have fragmented memory (for that reason, we generally recommend to use <code>MIMALLOC_RESERVE_HUGE_OS_PAGES</code> instead when possible).</li> <li><code>MIMALLOC_LARGE_OS_PAGES=1</code>: use large OS pages (2MiB) when available; for some workloads this can significantly improve performance. Use <code>MIMALLOC_VERBOSE</code> to check if the large OS pages are enabled &ndash; usually one needs to explicitly allow large OS pages (as on <a href="https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/enable-the-lock-pages-in-memory-option-windows?view=sql-server-2017">Windows</a> and <a href="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/tuning_and_optimizing_red_hat_enterprise_linux_for_oracle_9i_and_10g_databases/sect-oracle_9i_and_10g_tuning_guide-large_memory_optimization_big_pages_and_huge_pages-configuring_huge_pages_in_red_hat_enterprise_linux_4_or_5">Linux</a>). However, sometimes the OS is very slow to reserve contiguous physical memory for large OS pages so use with care on systems that can have fragmented memory (for that reason, we generally recommend to use <code>MIMALLOC_RESERVE_HUGE_OS_PAGES</code> instead when possible).</li>
<li><code>MIMALLOC_RESERVE_HUGE_OS_PAGES=N</code>: where N is the number of 1GiB <em>huge</em> OS pages. This reserves the huge pages at startup and sometimes this can give a large (latency) performance improvement on big workloads. Usually it is better to not use <code>MIMALLOC_LARGE_OS_PAGES</code> in combination with this setting. Just like large OS pages, use with care as reserving contiguous physical memory can take a long time when memory is fragmented (but reserving the huge pages is done at startup only once). Note that we usually need to explicitly enable huge OS pages (as on <a href="https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/enable-the-lock-pages-in-memory-option-windows?view=sql-server-2017">Windows</a> and <a href="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/tuning_and_optimizing_red_hat_enterprise_linux_for_oracle_9i_and_10g_databases/sect-oracle_9i_and_10g_tuning_guide-large_memory_optimization_big_pages_and_huge_pages-configuring_huge_pages_in_red_hat_enterprise_linux_4_or_5">Linux</a>)). With huge OS pages, it may be beneficial to set the setting <code>MIMALLOC_EAGER_COMMIT_DELAY=N</code> (<code>N</code> is 1 by default) to delay the initial <code>N</code> segments (of 4MiB) of a thread to not allocate in the huge OS pages; this prevents threads that are short lived and allocate just a little to take up space in the huge OS page area (which cannot be reset).</li> <li><code>MIMALLOC_RESERVE_HUGE_OS_PAGES=N</code>: where N is the number of 1GiB <em>huge</em> OS pages. This reserves the huge pages at startup and sometimes this can give a large (latency) performance improvement on big workloads. Usually it is better to not use <code>MIMALLOC_LARGE_OS_PAGES</code> in combination with this setting. Just like large OS pages, use with care as reserving contiguous physical memory can take a long time when memory is fragmented (but reserving the huge pages is done at startup only once). Note that we usually need to explicitly enable huge OS pages (as on <a href="https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/enable-the-lock-pages-in-memory-option-windows?view=sql-server-2017">Windows</a> and <a href="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/tuning_and_optimizing_red_hat_enterprise_linux_for_oracle_9i_and_10g_databases/sect-oracle_9i_and_10g_tuning_guide-large_memory_optimization_big_pages_and_huge_pages-configuring_huge_pages_in_red_hat_enterprise_linux_4_or_5">Linux</a>)). With huge OS pages, it may be beneficial to set the setting <code>MIMALLOC_EAGER_COMMIT_DELAY=N</code> (<code>N</code> is 1 by default) to delay the initial <code>N</code> segments (of 4MiB) of a thread to not allocate in the huge OS pages; this prevents threads that are short lived and allocate just a little to take up space in the huge OS page area (which cannot be reset).</li>
<li><code>MIMALLOC_RESERVE_HUGE_OS_PAGES_AT=N</code>: where N is the numa node. This reserves the huge pages at a specific numa node. (<code>N</code> is -1 by default to reserve huge pages evenly among the given number of numa nodes (or use the available ones as detected))</li>
</ul> </ul>
<p>Use caution when using <code>fork</code> in combination with either large or huge OS pages: on a fork, the OS uses copy-on-write for all pages in the original process including the huge OS pages. When any memory is now written in that area, the OS will copy the entire 1GiB huge page (or 2MiB large page) which can cause the memory usage to grow in big increments. </p> <p>Use caution when using <code>fork</code> in combination with either large or huge OS pages: on a fork, the OS uses copy-on-write for all pages in the original process including the huge OS pages. When any memory is now written in that area, the OS will copy the entire 1GiB huge page (or 2MiB large page) which can cause the memory usage to grow in big increments. </p>
</div></div><!-- PageDoc --> </div></div><!-- contents -->
</div><!-- contents --> </div><!-- PageDoc -->
</div><!-- doc-content --> </div><!-- doc-content -->
<!-- start footer part --> <!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul> <ul>
<li class="footer">Generated by <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul> </ul>
</div> </div>
</body> </body>

View File

@ -3,7 +3,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mi-malloc: Data Fields</title> <title>mi-malloc: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -13,10 +13,6 @@
<script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script> <script type="text/javascript" src="search/search.js"></script>
@ -37,21 +33,21 @@
<td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td> <td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mi-malloc <div id="projectname">mi-malloc
&#160;<span id="projectnumber">1.6</span> &#160;<span id="projectnumber">1.7/2.0</span>
</div> </div>
</td> </td>
<td> <div id="MSearchBox" class="MSearchBoxInactive"> <td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left"> <span class="left">
<img id="MSearchSelect" src="search/mag_sel.png" <img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()" onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()" onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/> alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S" <input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)" onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)" onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/> onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right"> </span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span> </span>
</div> </div>
</td> </td>
@ -60,10 +56,10 @@
</table> </table>
</div> </div>
<!-- end header part --> <!-- end header part -->
<!-- Generated by Doxygen 1.8.15 --> <!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search'); var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */ /* @license-end */
</script> </script>
</div><!-- top --> </div><!-- top -->
@ -73,13 +69,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-sync" class="sync"></div> <div id="nav-sync" class="sync"></div>
</div> </div>
</div> </div>
<div id="splitbar" style="-moz-user-select:none;" <div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle"> class="ui-resizable-handle">
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('functions.html','');}); $(document).ready(function(){initNavTree('functions.html',''); initResizable(); });
/* @license-end */ /* @license-end */
</script> </script>
<div id="doc-content"> <div id="doc-content">
@ -92,7 +88,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
<!-- iframe showing the search results (closed by default) --> <!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow"> <div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" <iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults"> name="MSearchResults" id="MSearchResults">
</iframe> </iframe>
</div> </div>
@ -120,9 +116,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
<!-- start footer part --> <!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul> <ul>
<li class="footer">Generated by <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul> </ul>
</div> </div>
</body> </body>

View File

@ -3,7 +3,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mi-malloc: Data Fields - Variables</title> <title>mi-malloc: Data Fields - Variables</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -13,10 +13,6 @@
<script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script> <script type="text/javascript" src="search/search.js"></script>
@ -37,21 +33,21 @@
<td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td> <td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mi-malloc <div id="projectname">mi-malloc
&#160;<span id="projectnumber">1.6</span> &#160;<span id="projectnumber">1.7/2.0</span>
</div> </div>
</td> </td>
<td> <div id="MSearchBox" class="MSearchBoxInactive"> <td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left"> <span class="left">
<img id="MSearchSelect" src="search/mag_sel.png" <img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()" onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()" onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/> alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S" <input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)" onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)" onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/> onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right"> </span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span> </span>
</div> </div>
</td> </td>
@ -60,10 +56,10 @@
</table> </table>
</div> </div>
<!-- end header part --> <!-- end header part -->
<!-- Generated by Doxygen 1.8.15 --> <!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search'); var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */ /* @license-end */
</script> </script>
</div><!-- top --> </div><!-- top -->
@ -73,13 +69,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-sync" class="sync"></div> <div id="nav-sync" class="sync"></div>
</div> </div>
</div> </div>
<div id="splitbar" style="-moz-user-select:none;" <div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle"> class="ui-resizable-handle">
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('functions_vars.html','');}); $(document).ready(function(){initNavTree('functions_vars.html',''); initResizable(); });
/* @license-end */ /* @license-end */
</script> </script>
<div id="doc-content"> <div id="doc-content">
@ -92,7 +88,7 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
<!-- iframe showing the search results (closed by default) --> <!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow"> <div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" <iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults"> name="MSearchResults" id="MSearchResults">
</iframe> </iframe>
</div> </div>
@ -120,9 +116,7 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
<!-- start footer part --> <!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul> <ul>
<li class="footer">Generated by <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul> </ul>
</div> </div>
</body> </body>

View File

@ -3,7 +3,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mi-malloc: Aligned Allocation</title> <title>mi-malloc: Aligned Allocation</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -13,10 +13,6 @@
<script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script> <script type="text/javascript" src="search/search.js"></script>
@ -37,21 +33,21 @@
<td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td> <td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mi-malloc <div id="projectname">mi-malloc
&#160;<span id="projectnumber">1.6</span> &#160;<span id="projectnumber">1.7/2.0</span>
</div> </div>
</td> </td>
<td> <div id="MSearchBox" class="MSearchBoxInactive"> <td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left"> <span class="left">
<img id="MSearchSelect" src="search/mag_sel.png" <img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()" onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()" onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/> alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S" <input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)" onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)" onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/> onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right"> </span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span> </span>
</div> </div>
</td> </td>
@ -60,10 +56,10 @@
</table> </table>
</div> </div>
<!-- end header part --> <!-- end header part -->
<!-- Generated by Doxygen 1.8.15 --> <!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search'); var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */ /* @license-end */
</script> </script>
</div><!-- top --> </div><!-- top -->
@ -73,13 +69,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-sync" class="sync"></div> <div id="nav-sync" class="sync"></div>
</div> </div>
</div> </div>
<div id="splitbar" style="-moz-user-select:none;" <div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle"> class="ui-resizable-handle">
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group__aligned.html','');}); $(document).ready(function(){initNavTree('group__aligned.html',''); initResizable(); });
/* @license-end */ /* @license-end */
</script> </script>
<div id="doc-content"> <div id="doc-content">
@ -92,26 +88,33 @@ $(document).ready(function(){initNavTree('group__aligned.html','');});
<!-- iframe showing the search results (closed by default) --> <!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow"> <div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" <iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults"> name="MSearchResults" id="MSearchResults">
</iframe> </iframe>
</div> </div>
<div class="header"> <div class="header">
<div class="summary"> <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> </div> <a href="#func-members">Functions</a> </div>
<div class="headertitle"> <div class="headertitle">
<div class="title">Aligned Allocation</div> </div> <div class="title">Aligned Allocation</div> </div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<p>Allocating aligned memory blocks. <p>Allocating aligned memory blocks.
<a href="#details">More...</a></p> <a href="#details">More...</a></p>
<table class="memberdecls"> <table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga83c03016066b438f51a8095e9140be06"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aligned.html#ga83c03016066b438f51a8095e9140be06">MI_ALIGNMENT_MAX</a></td></tr>
<tr class="memdesc:ga83c03016066b438f51a8095e9140be06"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum supported alignment size (currently 1MiB). <a href="group__aligned.html#ga83c03016066b438f51a8095e9140be06">More...</a><br /></td></tr>
<tr class="separator:ga83c03016066b438f51a8095e9140be06"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr> Functions</h2></td></tr>
<tr class="memitem:ga68930196751fa2cca9e1fd0d71bade56"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aligned.html#ga68930196751fa2cca9e1fd0d71bade56">mi_malloc_aligned</a> (size_t size, size_t alignment)</td></tr> <tr class="memitem:ga68930196751fa2cca9e1fd0d71bade56"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aligned.html#ga68930196751fa2cca9e1fd0d71bade56">mi_malloc_aligned</a> (size_t size, size_t alignment)</td></tr>
<tr class="memdesc:ga68930196751fa2cca9e1fd0d71bade56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate <em>size</em> bytes aligned by <em>alignment</em>. <a href="#ga68930196751fa2cca9e1fd0d71bade56">More...</a><br /></td></tr> <tr class="memdesc:ga68930196751fa2cca9e1fd0d71bade56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate <em>size</em> bytes aligned by <em>alignment</em>. <a href="group__aligned.html#ga68930196751fa2cca9e1fd0d71bade56">More...</a><br /></td></tr>
<tr class="separator:ga68930196751fa2cca9e1fd0d71bade56"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga68930196751fa2cca9e1fd0d71bade56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0cadbcf5b89a7b6fb171bc8df8734819"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aligned.html#ga0cadbcf5b89a7b6fb171bc8df8734819">mi_zalloc_aligned</a> (size_t size, size_t alignment)</td></tr> <tr class="memitem:ga0cadbcf5b89a7b6fb171bc8df8734819"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aligned.html#ga0cadbcf5b89a7b6fb171bc8df8734819">mi_zalloc_aligned</a> (size_t size, size_t alignment)</td></tr>
<tr class="separator:ga0cadbcf5b89a7b6fb171bc8df8734819"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga0cadbcf5b89a7b6fb171bc8df8734819"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -120,7 +123,7 @@ Functions</h2></td></tr>
<tr class="memitem:ga4028d1cf4aa4c87c880747044a8322ae"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aligned.html#ga4028d1cf4aa4c87c880747044a8322ae">mi_realloc_aligned</a> (void *p, size_t newsize, size_t alignment)</td></tr> <tr class="memitem:ga4028d1cf4aa4c87c880747044a8322ae"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aligned.html#ga4028d1cf4aa4c87c880747044a8322ae">mi_realloc_aligned</a> (void *p, size_t newsize, size_t alignment)</td></tr>
<tr class="separator:ga4028d1cf4aa4c87c880747044a8322ae"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga4028d1cf4aa4c87c880747044a8322ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5850da130c936bd77db039dcfbc8295d"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aligned.html#ga5850da130c936bd77db039dcfbc8295d">mi_malloc_aligned_at</a> (size_t size, size_t alignment, size_t offset)</td></tr> <tr class="memitem:ga5850da130c936bd77db039dcfbc8295d"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aligned.html#ga5850da130c936bd77db039dcfbc8295d">mi_malloc_aligned_at</a> (size_t size, size_t alignment, size_t offset)</td></tr>
<tr class="memdesc:ga5850da130c936bd77db039dcfbc8295d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate <em>size</em> bytes aligned by <em>alignment</em> at a specified <em>offset</em>. <a href="#ga5850da130c936bd77db039dcfbc8295d">More...</a><br /></td></tr> <tr class="memdesc:ga5850da130c936bd77db039dcfbc8295d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate <em>size</em> bytes aligned by <em>alignment</em> at a specified <em>offset</em>. <a href="group__aligned.html#ga5850da130c936bd77db039dcfbc8295d">More...</a><br /></td></tr>
<tr class="separator:ga5850da130c936bd77db039dcfbc8295d"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga5850da130c936bd77db039dcfbc8295d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5f8c2353766db522565e642fafd8a3f8"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aligned.html#ga5f8c2353766db522565e642fafd8a3f8">mi_zalloc_aligned_at</a> (size_t size, size_t alignment, size_t offset)</td></tr> <tr class="memitem:ga5f8c2353766db522565e642fafd8a3f8"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aligned.html#ga5f8c2353766db522565e642fafd8a3f8">mi_zalloc_aligned_at</a> (size_t size, size_t alignment, size_t offset)</td></tr>
<tr class="separator:ga5f8c2353766db522565e642fafd8a3f8"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga5f8c2353766db522565e642fafd8a3f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -131,6 +134,23 @@ Functions</h2></td></tr>
</table> </table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Allocating aligned memory blocks. </p> <p>Allocating aligned memory blocks. </p>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ga83c03016066b438f51a8095e9140be06"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga83c03016066b438f51a8095e9140be06">&#9670;&nbsp;</a></span>MI_ALIGNMENT_MAX</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MI_ALIGNMENT_MAX</td>
</tr>
</table>
</div><div class="memdoc">
<p>The maximum supported alignment size (currently 1MiB). </p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2> <h2 class="groupheader">Function Documentation</h2>
<a id="ga53dddb4724042a90315b94bc268fb4c9"></a> <a id="ga53dddb4724042a90315b94bc268fb4c9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga53dddb4724042a90315b94bc268fb4c9">&#9670;&nbsp;</a></span>mi_calloc_aligned()</h2> <h2 class="memtitle"><span class="permalink"><a href="#ga53dddb4724042a90315b94bc268fb4c9">&#9670;&nbsp;</a></span>mi_calloc_aligned()</h2>
@ -236,7 +256,7 @@ Functions</h2></td></tr>
<dl class="params"><dt>Parameters</dt><dd> <dl class="params"><dt>Parameters</dt><dd>
<table class="params"> <table class="params">
<tr><td class="paramname">size</td><td>number of bytes to allocate. </td></tr> <tr><td class="paramname">size</td><td>number of bytes to allocate. </td></tr>
<tr><td class="paramname">alignment</td><td>the minimal alignment of the allocated memory. </td></tr> <tr><td class="paramname">alignment</td><td>the minimal alignment of the allocated memory. Must be less than <a class="el" href="group__aligned.html#ga83c03016066b438f51a8095e9140be06" title="The maximum supported alignment size (currently 1MiB).">MI_ALIGNMENT_MAX</a>. </td></tr>
</table> </table>
</dd> </dd>
</dl> </dl>
@ -438,9 +458,7 @@ Functions</h2></td></tr>
<!-- start footer part --> <!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul> <ul>
<li class="footer">Generated by <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul> </ul>
</div> </div>
</body> </body>

View File

@ -1,5 +1,6 @@
var group__aligned = var group__aligned =
[ [
[ "MI_ALIGNMENT_MAX", "group__aligned.html#ga83c03016066b438f51a8095e9140be06", null ],
[ "mi_calloc_aligned", "group__aligned.html#ga53dddb4724042a90315b94bc268fb4c9", null ], [ "mi_calloc_aligned", "group__aligned.html#ga53dddb4724042a90315b94bc268fb4c9", null ],
[ "mi_calloc_aligned_at", "group__aligned.html#ga08647c4593f3b2eef24a919a73eba3a3", null ], [ "mi_calloc_aligned_at", "group__aligned.html#ga08647c4593f3b2eef24a919a73eba3a3", null ],
[ "mi_malloc_aligned", "group__aligned.html#ga68930196751fa2cca9e1fd0d71bade56", null ], [ "mi_malloc_aligned", "group__aligned.html#ga68930196751fa2cca9e1fd0d71bade56", null ],

View File

@ -3,7 +3,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mi-malloc: Heap Introspection</title> <title>mi-malloc: Heap Introspection</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -13,10 +13,6 @@
<script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script> <script type="text/javascript" src="search/search.js"></script>
@ -37,21 +33,21 @@
<td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td> <td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mi-malloc <div id="projectname">mi-malloc
&#160;<span id="projectnumber">1.6</span> &#160;<span id="projectnumber">1.7/2.0</span>
</div> </div>
</td> </td>
<td> <div id="MSearchBox" class="MSearchBoxInactive"> <td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left"> <span class="left">
<img id="MSearchSelect" src="search/mag_sel.png" <img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()" onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()" onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/> alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S" <input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)" onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)" onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/> onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right"> </span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span> </span>
</div> </div>
</td> </td>
@ -60,10 +56,10 @@
</table> </table>
</div> </div>
<!-- end header part --> <!-- end header part -->
<!-- Generated by Doxygen 1.8.15 --> <!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search'); var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */ /* @license-end */
</script> </script>
</div><!-- top --> </div><!-- top -->
@ -73,13 +69,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-sync" class="sync"></div> <div id="nav-sync" class="sync"></div>
</div> </div>
</div> </div>
<div id="splitbar" style="-moz-user-select:none;" <div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle"> class="ui-resizable-handle">
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group__analysis.html','');}); $(document).ready(function(){initNavTree('group__analysis.html',''); initResizable(); });
/* @license-end */ /* @license-end */
</script> </script>
<div id="doc-content"> <div id="doc-content">
@ -92,7 +88,7 @@ $(document).ready(function(){initNavTree('group__analysis.html','');});
<!-- iframe showing the search results (closed by default) --> <!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow"> <div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" <iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults"> name="MSearchResults" id="MSearchResults">
</iframe> </iframe>
</div> </div>
@ -107,7 +103,7 @@ $(document).ready(function(){initNavTree('group__analysis.html','');});
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<p>Inspect the heap at runtime. <p>Inspect the heap at runtime.
<a href="#details">More...</a></p> <a href="#details">More...</a></p>
<table class="memberdecls"> <table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
@ -119,22 +115,22 @@ Data Structures</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr> Typedefs</h2></td></tr>
<tr class="memitem:gadfa01e2900f0e5d515ad5506b26f6d65"><td class="memItemLeft" align="right" valign="top">typedef bool()&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analysis.html#gadfa01e2900f0e5d515ad5506b26f6d65">mi_block_visit_fun</a>(const <a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, const <a class="el" href="group__analysis.html#structmi__heap__area__t">mi_heap_area_t</a> *area, void *block, size_t block_size, void *arg)</td></tr> <tr class="memitem:gadfa01e2900f0e5d515ad5506b26f6d65"><td class="memItemLeft" align="right" valign="top">typedef bool()&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analysis.html#gadfa01e2900f0e5d515ad5506b26f6d65">mi_block_visit_fun</a>(const <a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, const <a class="el" href="group__analysis.html#structmi__heap__area__t">mi_heap_area_t</a> *area, void *block, size_t block_size, void *arg)</td></tr>
<tr class="memdesc:gadfa01e2900f0e5d515ad5506b26f6d65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Visitor function passed to <a class="el" href="group__analysis.html#ga70c46687dc6e9dc98b232b02646f8bed" title="Visit all areas and blocks in a heap.">mi_heap_visit_blocks()</a> <a href="#gadfa01e2900f0e5d515ad5506b26f6d65">More...</a><br /></td></tr> <tr class="memdesc:gadfa01e2900f0e5d515ad5506b26f6d65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Visitor function passed to <a class="el" href="group__analysis.html#ga70c46687dc6e9dc98b232b02646f8bed" title="Visit all areas and blocks in a heap.">mi_heap_visit_blocks()</a> <a href="group__analysis.html#gadfa01e2900f0e5d515ad5506b26f6d65">More...</a><br /></td></tr>
<tr class="separator:gadfa01e2900f0e5d515ad5506b26f6d65"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gadfa01e2900f0e5d515ad5506b26f6d65"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls"> </table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr> Functions</h2></td></tr>
<tr class="memitem:gaa862aa8ed8d57d84cae41fc1022d71af"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analysis.html#gaa862aa8ed8d57d84cae41fc1022d71af">mi_heap_contains_block</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, const void *p)</td></tr> <tr class="memitem:gaa862aa8ed8d57d84cae41fc1022d71af"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analysis.html#gaa862aa8ed8d57d84cae41fc1022d71af">mi_heap_contains_block</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, const void *p)</td></tr>
<tr class="memdesc:gaa862aa8ed8d57d84cae41fc1022d71af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does a heap contain a pointer to a previously allocated block? <a href="#gaa862aa8ed8d57d84cae41fc1022d71af">More...</a><br /></td></tr> <tr class="memdesc:gaa862aa8ed8d57d84cae41fc1022d71af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does a heap contain a pointer to a previously allocated block? <a href="group__analysis.html#gaa862aa8ed8d57d84cae41fc1022d71af">More...</a><br /></td></tr>
<tr class="separator:gaa862aa8ed8d57d84cae41fc1022d71af"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gaa862aa8ed8d57d84cae41fc1022d71af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0d67c1789faaa15ff366c024fcaf6377"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analysis.html#ga0d67c1789faaa15ff366c024fcaf6377">mi_heap_check_owned</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, const void *p)</td></tr> <tr class="memitem:ga0d67c1789faaa15ff366c024fcaf6377"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analysis.html#ga0d67c1789faaa15ff366c024fcaf6377">mi_heap_check_owned</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, const void *p)</td></tr>
<tr class="memdesc:ga0d67c1789faaa15ff366c024fcaf6377"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check safely if any pointer is part of a heap. <a href="#ga0d67c1789faaa15ff366c024fcaf6377">More...</a><br /></td></tr> <tr class="memdesc:ga0d67c1789faaa15ff366c024fcaf6377"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check safely if any pointer is part of a heap. <a href="group__analysis.html#ga0d67c1789faaa15ff366c024fcaf6377">More...</a><br /></td></tr>
<tr class="separator:ga0d67c1789faaa15ff366c024fcaf6377"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga0d67c1789faaa15ff366c024fcaf6377"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga628c237489c2679af84a4d0d143b3dd5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analysis.html#ga628c237489c2679af84a4d0d143b3dd5">mi_check_owned</a> (const void *p)</td></tr> <tr class="memitem:ga628c237489c2679af84a4d0d143b3dd5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analysis.html#ga628c237489c2679af84a4d0d143b3dd5">mi_check_owned</a> (const void *p)</td></tr>
<tr class="memdesc:ga628c237489c2679af84a4d0d143b3dd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check safely if any pointer is part of the default heap of this thread. <a href="#ga628c237489c2679af84a4d0d143b3dd5">More...</a><br /></td></tr> <tr class="memdesc:ga628c237489c2679af84a4d0d143b3dd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check safely if any pointer is part of the default heap of this thread. <a href="group__analysis.html#ga628c237489c2679af84a4d0d143b3dd5">More...</a><br /></td></tr>
<tr class="separator:ga628c237489c2679af84a4d0d143b3dd5"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga628c237489c2679af84a4d0d143b3dd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga70c46687dc6e9dc98b232b02646f8bed"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analysis.html#ga70c46687dc6e9dc98b232b02646f8bed">mi_heap_visit_blocks</a> (const <a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, bool visit_all_blocks, <a class="el" href="group__analysis.html#gadfa01e2900f0e5d515ad5506b26f6d65">mi_block_visit_fun</a> *visitor, void *arg)</td></tr> <tr class="memitem:ga70c46687dc6e9dc98b232b02646f8bed"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__analysis.html#ga70c46687dc6e9dc98b232b02646f8bed">mi_heap_visit_blocks</a> (const <a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, bool visit_all_blocks, <a class="el" href="group__analysis.html#gadfa01e2900f0e5d515ad5506b26f6d65">mi_block_visit_fun</a> *visitor, void *arg)</td></tr>
<tr class="memdesc:ga70c46687dc6e9dc98b232b02646f8bed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Visit all areas and blocks in a heap. <a href="#ga70c46687dc6e9dc98b232b02646f8bed">More...</a><br /></td></tr> <tr class="memdesc:ga70c46687dc6e9dc98b232b02646f8bed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Visit all areas and blocks in a heap. <a href="group__analysis.html#ga70c46687dc6e9dc98b232b02646f8bed">More...</a><br /></td></tr>
<tr class="separator:ga70c46687dc6e9dc98b232b02646f8bed"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga70c46687dc6e9dc98b232b02646f8bed"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table> </table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@ -376,9 +372,7 @@ bytes in use by allocated blocks </td></tr>
<!-- start footer part --> <!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul> <ul>
<li class="footer">Generated by <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul> </ul>
</div> </div>
</body> </body>

View File

@ -3,7 +3,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mi-malloc: C++ wrappers</title> <title>mi-malloc: C++ wrappers</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -13,10 +13,6 @@
<script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script> <script type="text/javascript" src="search/search.js"></script>
@ -37,21 +33,21 @@
<td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td> <td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mi-malloc <div id="projectname">mi-malloc
&#160;<span id="projectnumber">1.6</span> &#160;<span id="projectnumber">1.7/2.0</span>
</div> </div>
</td> </td>
<td> <div id="MSearchBox" class="MSearchBoxInactive"> <td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left"> <span class="left">
<img id="MSearchSelect" src="search/mag_sel.png" <img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()" onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()" onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/> alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S" <input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)" onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)" onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/> onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right"> </span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span> </span>
</div> </div>
</td> </td>
@ -60,10 +56,10 @@
</table> </table>
</div> </div>
<!-- end header part --> <!-- end header part -->
<!-- Generated by Doxygen 1.8.15 --> <!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search'); var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */ /* @license-end */
</script> </script>
</div><!-- top --> </div><!-- top -->
@ -73,13 +69,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-sync" class="sync"></div> <div id="nav-sync" class="sync"></div>
</div> </div>
</div> </div>
<div id="splitbar" style="-moz-user-select:none;" <div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle"> class="ui-resizable-handle">
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group__cpp.html','');}); $(document).ready(function(){initNavTree('group__cpp.html',''); initResizable(); });
/* @license-end */ /* @license-end */
</script> </script>
<div id="doc-content"> <div id="doc-content">
@ -92,7 +88,7 @@ $(document).ready(function(){initNavTree('group__cpp.html','');});
<!-- iframe showing the search results (closed by default) --> <!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow"> <div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" <iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults"> name="MSearchResults" id="MSearchResults">
</iframe> </iframe>
</div> </div>
@ -106,7 +102,7 @@ $(document).ready(function(){initNavTree('group__cpp.html','');});
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<p><code>mi_</code> prefixed implementations of various allocation functions that use C++ semantics on out-of-memory, generally calling <code>std::get_new_handler</code> and raising a <code>std::bad_alloc</code> exception on failure. <p><code>mi_</code> prefixed implementations of various allocation functions that use C++ semantics on out-of-memory, generally calling <code>std::get_new_handler</code> and raising a <code>std::bad_alloc</code> exception on failure.
<a href="#details">More...</a></p> <a href="#details">More...</a></p>
<table class="memberdecls"> <table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
@ -118,25 +114,25 @@ Data Structures</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr> Functions</h2></td></tr>
<tr class="memitem:gaad048a9fce3d02c5909cd05c6ec24545"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpp.html#gaad048a9fce3d02c5909cd05c6ec24545">mi_new</a> (std::size_t n) noexcept(false)</td></tr> <tr class="memitem:gaad048a9fce3d02c5909cd05c6ec24545"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpp.html#gaad048a9fce3d02c5909cd05c6ec24545">mi_new</a> (std::size_t n) noexcept(false)</td></tr>
<tr class="memdesc:gaad048a9fce3d02c5909cd05c6ec24545"><td class="mdescLeft">&#160;</td><td class="mdescRight">like <a class="el" href="group__malloc.html#ga3406e8b168bc74c8637b11571a6da83a" title="Allocate size bytes.">mi_malloc()</a>, but when out of memory, use <code>std::get_new_handler</code> and raise <code>std::bad_alloc</code> exception on failure. <a href="#gaad048a9fce3d02c5909cd05c6ec24545">More...</a><br /></td></tr> <tr class="memdesc:gaad048a9fce3d02c5909cd05c6ec24545"><td class="mdescLeft">&#160;</td><td class="mdescRight">like <a class="el" href="group__malloc.html#ga3406e8b168bc74c8637b11571a6da83a" title="Allocate size bytes.">mi_malloc()</a>, but when out of memory, use <code>std::get_new_handler</code> and raise <code>std::bad_alloc</code> exception on failure. <a href="group__cpp.html#gaad048a9fce3d02c5909cd05c6ec24545">More...</a><br /></td></tr>
<tr class="separator:gaad048a9fce3d02c5909cd05c6ec24545"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gaad048a9fce3d02c5909cd05c6ec24545"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae7bc4f56cd57ed3359060ff4f38bda81"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpp.html#gae7bc4f56cd57ed3359060ff4f38bda81">mi_new_n</a> (size_t count, size_t size) noexcept(false)</td></tr> <tr class="memitem:gae7bc4f56cd57ed3359060ff4f38bda81"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpp.html#gae7bc4f56cd57ed3359060ff4f38bda81">mi_new_n</a> (size_t count, size_t size) noexcept(false)</td></tr>
<tr class="memdesc:gae7bc4f56cd57ed3359060ff4f38bda81"><td class="mdescLeft">&#160;</td><td class="mdescRight">like <a class="el" href="group__malloc.html#ga0b05e2bf0f73e7401ae08597ff782ac6" title="Allocate count elements of size bytes.">mi_mallocn()</a>, but when out of memory, use <code>std::get_new_handler</code> and raise <code>std::bad_alloc</code> exception on failure. <a href="#gae7bc4f56cd57ed3359060ff4f38bda81">More...</a><br /></td></tr> <tr class="memdesc:gae7bc4f56cd57ed3359060ff4f38bda81"><td class="mdescLeft">&#160;</td><td class="mdescRight">like <a class="el" href="group__malloc.html#ga0b05e2bf0f73e7401ae08597ff782ac6" title="Allocate count elements of size bytes.">mi_mallocn()</a>, but when out of memory, use <code>std::get_new_handler</code> and raise <code>std::bad_alloc</code> exception on failure. <a href="group__cpp.html#gae7bc4f56cd57ed3359060ff4f38bda81">More...</a><br /></td></tr>
<tr class="separator:gae7bc4f56cd57ed3359060ff4f38bda81"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gae7bc4f56cd57ed3359060ff4f38bda81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaef2c2bdb4f70857902d3c8903ac095f3"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpp.html#gaef2c2bdb4f70857902d3c8903ac095f3">mi_new_aligned</a> (std::size_t n, std::align_val_t alignment) noexcept(false)</td></tr> <tr class="memitem:gaef2c2bdb4f70857902d3c8903ac095f3"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpp.html#gaef2c2bdb4f70857902d3c8903ac095f3">mi_new_aligned</a> (std::size_t n, std::align_val_t alignment) noexcept(false)</td></tr>
<tr class="memdesc:gaef2c2bdb4f70857902d3c8903ac095f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">like <a class="el" href="group__aligned.html#ga68930196751fa2cca9e1fd0d71bade56" title="Allocate size bytes aligned by alignment.">mi_malloc_aligned()</a>, but when out of memory, use <code>std::get_new_handler</code> and raise <code>std::bad_alloc</code> exception on failure. <a href="#gaef2c2bdb4f70857902d3c8903ac095f3">More...</a><br /></td></tr> <tr class="memdesc:gaef2c2bdb4f70857902d3c8903ac095f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">like <a class="el" href="group__aligned.html#ga68930196751fa2cca9e1fd0d71bade56" title="Allocate size bytes aligned by alignment.">mi_malloc_aligned()</a>, but when out of memory, use <code>std::get_new_handler</code> and raise <code>std::bad_alloc</code> exception on failure. <a href="group__cpp.html#gaef2c2bdb4f70857902d3c8903ac095f3">More...</a><br /></td></tr>
<tr class="separator:gaef2c2bdb4f70857902d3c8903ac095f3"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gaef2c2bdb4f70857902d3c8903ac095f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeaded64eda71ed6b1d569d3e723abc4a"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpp.html#gaeaded64eda71ed6b1d569d3e723abc4a">mi_new_nothrow</a> (size_t n)</td></tr> <tr class="memitem:gaeaded64eda71ed6b1d569d3e723abc4a"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpp.html#gaeaded64eda71ed6b1d569d3e723abc4a">mi_new_nothrow</a> (size_t n)</td></tr>
<tr class="memdesc:gaeaded64eda71ed6b1d569d3e723abc4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">like <code>mi_malloc</code>, but when out of memory, use <code>std::get_new_handler</code> but return <em>NULL</em> on failure. <a href="#gaeaded64eda71ed6b1d569d3e723abc4a">More...</a><br /></td></tr> <tr class="memdesc:gaeaded64eda71ed6b1d569d3e723abc4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">like <code>mi_malloc</code>, but when out of memory, use <code>std::get_new_handler</code> but return <em>NULL</em> on failure. <a href="group__cpp.html#gaeaded64eda71ed6b1d569d3e723abc4a">More...</a><br /></td></tr>
<tr class="separator:gaeaded64eda71ed6b1d569d3e723abc4a"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gaeaded64eda71ed6b1d569d3e723abc4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab5e29558926d934c3f1cae8c815f942c"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpp.html#gab5e29558926d934c3f1cae8c815f942c">mi_new_aligned_nothrow</a> (size_t n, size_t alignment)</td></tr> <tr class="memitem:gab5e29558926d934c3f1cae8c815f942c"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpp.html#gab5e29558926d934c3f1cae8c815f942c">mi_new_aligned_nothrow</a> (size_t n, size_t alignment)</td></tr>
<tr class="memdesc:gab5e29558926d934c3f1cae8c815f942c"><td class="mdescLeft">&#160;</td><td class="mdescRight">like <code>mi_malloc_aligned</code>, but when out of memory, use <code>std::get_new_handler</code> but return <em>NULL</em> on failure. <a href="#gab5e29558926d934c3f1cae8c815f942c">More...</a><br /></td></tr> <tr class="memdesc:gab5e29558926d934c3f1cae8c815f942c"><td class="mdescLeft">&#160;</td><td class="mdescRight">like <code>mi_malloc_aligned</code>, but when out of memory, use <code>std::get_new_handler</code> but return <em>NULL</em> on failure. <a href="group__cpp.html#gab5e29558926d934c3f1cae8c815f942c">More...</a><br /></td></tr>
<tr class="separator:gab5e29558926d934c3f1cae8c815f942c"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gab5e29558926d934c3f1cae8c815f942c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaab78a32f55149e9fbf432d5288e38e1e"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpp.html#gaab78a32f55149e9fbf432d5288e38e1e">mi_new_realloc</a> (void *p, size_t newsize)</td></tr> <tr class="memitem:gaab78a32f55149e9fbf432d5288e38e1e"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpp.html#gaab78a32f55149e9fbf432d5288e38e1e">mi_new_realloc</a> (void *p, size_t newsize)</td></tr>
<tr class="memdesc:gaab78a32f55149e9fbf432d5288e38e1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">like <a class="el" href="group__malloc.html#gaf11eb497da57bdfb2de65eb191c69db6" title="Re-allocate memory to newsize bytes.">mi_realloc()</a>, but when out of memory, use <code>std::get_new_handler</code> and raise <code>std::bad_alloc</code> exception on failure. <a href="#gaab78a32f55149e9fbf432d5288e38e1e">More...</a><br /></td></tr> <tr class="memdesc:gaab78a32f55149e9fbf432d5288e38e1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">like <a class="el" href="group__malloc.html#gaf11eb497da57bdfb2de65eb191c69db6" title="Re-allocate memory to newsize bytes.">mi_realloc()</a>, but when out of memory, use <code>std::get_new_handler</code> and raise <code>std::bad_alloc</code> exception on failure. <a href="group__cpp.html#gaab78a32f55149e9fbf432d5288e38e1e">More...</a><br /></td></tr>
<tr class="separator:gaab78a32f55149e9fbf432d5288e38e1e"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gaab78a32f55149e9fbf432d5288e38e1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga756f4b2bc6a7ecd0a90baea8e90c7907"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpp.html#ga756f4b2bc6a7ecd0a90baea8e90c7907">mi_new_reallocn</a> (void *p, size_t newcount, size_t size)</td></tr> <tr class="memitem:ga756f4b2bc6a7ecd0a90baea8e90c7907"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cpp.html#ga756f4b2bc6a7ecd0a90baea8e90c7907">mi_new_reallocn</a> (void *p, size_t newcount, size_t size)</td></tr>
<tr class="memdesc:ga756f4b2bc6a7ecd0a90baea8e90c7907"><td class="mdescLeft">&#160;</td><td class="mdescRight">like <a class="el" href="group__malloc.html#ga61d57b4144ba24fba5c1e9b956d13853" title="Re-allocate memory to count elements of size bytes.">mi_reallocn()</a>, but when out of memory, use <code>std::get_new_handler</code> and raise <code>std::bad_alloc</code> exception on failure. <a href="#ga756f4b2bc6a7ecd0a90baea8e90c7907">More...</a><br /></td></tr> <tr class="memdesc:ga756f4b2bc6a7ecd0a90baea8e90c7907"><td class="mdescLeft">&#160;</td><td class="mdescRight">like <a class="el" href="group__malloc.html#ga61d57b4144ba24fba5c1e9b956d13853" title="Re-allocate memory to count elements of size bytes.">mi_reallocn()</a>, but when out of memory, use <code>std::get_new_handler</code> and raise <code>std::bad_alloc</code> exception on failure. <a href="group__cpp.html#ga756f4b2bc6a7ecd0a90baea8e90c7907">More...</a><br /></td></tr>
<tr class="separator:ga756f4b2bc6a7ecd0a90baea8e90c7907"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga756f4b2bc6a7ecd0a90baea8e90c7907"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table> </table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@ -158,7 +154,10 @@ Functions</h2></td></tr>
struct mi_stl_allocator&lt; T &gt;</h3> struct mi_stl_allocator&lt; T &gt;</h3>
<p><em>std::allocator</em> implementation for mimalloc for use in STL containers. </p> <p><em>std::allocator</em> implementation for mimalloc for use in STL containers. </p>
<p>For example: </p><div class="fragment"><div class="line">std::vector&lt;int, mi_stl_allocator&lt;int&gt; &gt; vec;</div><div class="line">vec.push_back(1);</div><div class="line">vec.pop_back();</div></div><!-- fragment --> </div> <p>For example: </p><div class="fragment"><div class="line">std::vector&lt;int, mi_stl_allocator&lt;int&gt; &gt; vec;</div>
<div class="line">vec.push_back(1);</div>
<div class="line">vec.pop_back();</div>
</div><!-- fragment --> </div>
</div> </div>
</div> </div>
<h2 class="groupheader">Function Documentation</h2> <h2 class="groupheader">Function Documentation</h2>
@ -387,9 +386,7 @@ struct mi_stl_allocator&lt; T &gt;</h3>
<!-- start footer part --> <!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul> <ul>
<li class="footer">Generated by <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul> </ul>
</div> </div>
</body> </body>

View File

@ -3,7 +3,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mi-malloc: Extended Functions</title> <title>mi-malloc: Extended Functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -13,10 +13,6 @@
<script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script> <script type="text/javascript" src="search/search.js"></script>
@ -37,21 +33,21 @@
<td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td> <td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mi-malloc <div id="projectname">mi-malloc
&#160;<span id="projectnumber">1.6</span> &#160;<span id="projectnumber">1.7/2.0</span>
</div> </div>
</td> </td>
<td> <div id="MSearchBox" class="MSearchBoxInactive"> <td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left"> <span class="left">
<img id="MSearchSelect" src="search/mag_sel.png" <img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()" onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()" onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/> alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S" <input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)" onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)" onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/> onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right"> </span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span> </span>
</div> </div>
</td> </td>
@ -60,10 +56,10 @@
</table> </table>
</div> </div>
<!-- end header part --> <!-- end header part -->
<!-- Generated by Doxygen 1.8.15 --> <!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search'); var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */ /* @license-end */
</script> </script>
</div><!-- top --> </div><!-- top -->
@ -73,13 +69,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-sync" class="sync"></div> <div id="nav-sync" class="sync"></div>
</div> </div>
</div> </div>
<div id="splitbar" style="-moz-user-select:none;" <div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle"> class="ui-resizable-handle">
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group__extended.html','');}); $(document).ready(function(){initNavTree('group__extended.html',''); initResizable(); });
/* @license-end */ /* @license-end */
</script> </script>
<div id="doc-content"> <div id="doc-content">
@ -92,7 +88,7 @@ $(document).ready(function(){initNavTree('group__extended.html','');});
<!-- iframe showing the search results (closed by default) --> <!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow"> <div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" <iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults"> name="MSearchResults" id="MSearchResults">
</iframe> </iframe>
</div> </div>
@ -107,88 +103,94 @@ $(document).ready(function(){initNavTree('group__extended.html','');});
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<p>Extended functionality. <p>Extended functionality.
<a href="#details">More...</a></p> <a href="#details">More...</a></p>
<table class="memberdecls"> <table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr> Macros</h2></td></tr>
<tr class="memitem:ga1ea64283508718d9d645c38efc2f4305"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga1ea64283508718d9d645c38efc2f4305">MI_SMALL_SIZE_MAX</a></td></tr> <tr class="memitem:ga1ea64283508718d9d645c38efc2f4305"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga1ea64283508718d9d645c38efc2f4305">MI_SMALL_SIZE_MAX</a></td></tr>
<tr class="memdesc:ga1ea64283508718d9d645c38efc2f4305"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum size allowed for small allocations in <a class="el" href="group__extended.html#ga7136c2e55cb22c98ecf95d08d6debb99" title="Allocate a small object.">mi_malloc_small</a> and <a class="el" href="group__extended.html#ga220f29f40a44404b0061c15bc1c31152" title="Allocate a zero initialized small object.">mi_zalloc_small</a> (usually <code>128*sizeof(void*)</code> (= 1KB on 64-bit systems)) <a href="#ga1ea64283508718d9d645c38efc2f4305">More...</a><br /></td></tr> <tr class="memdesc:ga1ea64283508718d9d645c38efc2f4305"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum size allowed for small allocations in <a class="el" href="group__extended.html#ga7136c2e55cb22c98ecf95d08d6debb99" title="Allocate a small object.">mi_malloc_small</a> and <a class="el" href="group__extended.html#ga220f29f40a44404b0061c15bc1c31152" title="Allocate a zero initialized small object.">mi_zalloc_small</a> (usually <code>128*sizeof(void*)</code> (= 1KB on 64-bit systems)) <a href="group__extended.html#ga1ea64283508718d9d645c38efc2f4305">More...</a><br /></td></tr>
<tr class="separator:ga1ea64283508718d9d645c38efc2f4305"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga1ea64283508718d9d645c38efc2f4305"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls"> </table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr> Typedefs</h2></td></tr>
<tr class="memitem:ga299dae78d25ce112e384a98b7309c5be"><td class="memItemLeft" align="right" valign="top">typedef void()&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga299dae78d25ce112e384a98b7309c5be">mi_deferred_free_fun</a>(bool force, unsigned long long heartbeat, void *arg)</td></tr> <tr class="memitem:ga299dae78d25ce112e384a98b7309c5be"><td class="memItemLeft" align="right" valign="top">typedef void()&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga299dae78d25ce112e384a98b7309c5be">mi_deferred_free_fun</a>(bool force, unsigned long long heartbeat, void *arg)</td></tr>
<tr class="memdesc:ga299dae78d25ce112e384a98b7309c5be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of deferred free functions. <a href="#ga299dae78d25ce112e384a98b7309c5be">More...</a><br /></td></tr> <tr class="memdesc:ga299dae78d25ce112e384a98b7309c5be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of deferred free functions. <a href="group__extended.html#ga299dae78d25ce112e384a98b7309c5be">More...</a><br /></td></tr>
<tr class="separator:ga299dae78d25ce112e384a98b7309c5be"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga299dae78d25ce112e384a98b7309c5be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad823d23444a4b77a40f66bf075a98a0c"><td class="memItemLeft" align="right" valign="top">typedef void()&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#gad823d23444a4b77a40f66bf075a98a0c">mi_output_fun</a>(const char *msg, void *arg)</td></tr> <tr class="memitem:gad823d23444a4b77a40f66bf075a98a0c"><td class="memItemLeft" align="right" valign="top">typedef void()&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#gad823d23444a4b77a40f66bf075a98a0c">mi_output_fun</a>(const char *msg, void *arg)</td></tr>
<tr class="memdesc:gad823d23444a4b77a40f66bf075a98a0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of output functions. <a href="#gad823d23444a4b77a40f66bf075a98a0c">More...</a><br /></td></tr> <tr class="memdesc:gad823d23444a4b77a40f66bf075a98a0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of output functions. <a href="group__extended.html#gad823d23444a4b77a40f66bf075a98a0c">More...</a><br /></td></tr>
<tr class="separator:gad823d23444a4b77a40f66bf075a98a0c"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gad823d23444a4b77a40f66bf075a98a0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga251d369cda3f1c2a955c555486ed90e5"><td class="memItemLeft" align="right" valign="top">typedef void()&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga251d369cda3f1c2a955c555486ed90e5">mi_error_fun</a>(int err, void *arg)</td></tr> <tr class="memitem:ga251d369cda3f1c2a955c555486ed90e5"><td class="memItemLeft" align="right" valign="top">typedef void()&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga251d369cda3f1c2a955c555486ed90e5">mi_error_fun</a>(int err, void *arg)</td></tr>
<tr class="memdesc:ga251d369cda3f1c2a955c555486ed90e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of error callback functions. <a href="#ga251d369cda3f1c2a955c555486ed90e5">More...</a><br /></td></tr> <tr class="memdesc:ga251d369cda3f1c2a955c555486ed90e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of error callback functions. <a href="group__extended.html#ga251d369cda3f1c2a955c555486ed90e5">More...</a><br /></td></tr>
<tr class="separator:ga251d369cda3f1c2a955c555486ed90e5"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga251d369cda3f1c2a955c555486ed90e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls"> </table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr> Functions</h2></td></tr>
<tr class="memitem:ga7136c2e55cb22c98ecf95d08d6debb99"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga7136c2e55cb22c98ecf95d08d6debb99">mi_malloc_small</a> (size_t size)</td></tr> <tr class="memitem:ga7136c2e55cb22c98ecf95d08d6debb99"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga7136c2e55cb22c98ecf95d08d6debb99">mi_malloc_small</a> (size_t size)</td></tr>
<tr class="memdesc:ga7136c2e55cb22c98ecf95d08d6debb99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a small object. <a href="#ga7136c2e55cb22c98ecf95d08d6debb99">More...</a><br /></td></tr> <tr class="memdesc:ga7136c2e55cb22c98ecf95d08d6debb99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a small object. <a href="group__extended.html#ga7136c2e55cb22c98ecf95d08d6debb99">More...</a><br /></td></tr>
<tr class="separator:ga7136c2e55cb22c98ecf95d08d6debb99"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga7136c2e55cb22c98ecf95d08d6debb99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga220f29f40a44404b0061c15bc1c31152"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga220f29f40a44404b0061c15bc1c31152">mi_zalloc_small</a> (size_t size)</td></tr> <tr class="memitem:ga220f29f40a44404b0061c15bc1c31152"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga220f29f40a44404b0061c15bc1c31152">mi_zalloc_small</a> (size_t size)</td></tr>
<tr class="memdesc:ga220f29f40a44404b0061c15bc1c31152"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a zero initialized small object. <a href="#ga220f29f40a44404b0061c15bc1c31152">More...</a><br /></td></tr> <tr class="memdesc:ga220f29f40a44404b0061c15bc1c31152"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a zero initialized small object. <a href="group__extended.html#ga220f29f40a44404b0061c15bc1c31152">More...</a><br /></td></tr>
<tr class="separator:ga220f29f40a44404b0061c15bc1c31152"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga220f29f40a44404b0061c15bc1c31152"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga089c859d9eddc5f9b4bd946cd53cebee"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga089c859d9eddc5f9b4bd946cd53cebee">mi_usable_size</a> (void *p)</td></tr> <tr class="memitem:ga089c859d9eddc5f9b4bd946cd53cebee"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga089c859d9eddc5f9b4bd946cd53cebee">mi_usable_size</a> (void *p)</td></tr>
<tr class="memdesc:ga089c859d9eddc5f9b4bd946cd53cebee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the available bytes in a memory block. <a href="#ga089c859d9eddc5f9b4bd946cd53cebee">More...</a><br /></td></tr> <tr class="memdesc:ga089c859d9eddc5f9b4bd946cd53cebee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the available bytes in a memory block. <a href="group__extended.html#ga089c859d9eddc5f9b4bd946cd53cebee">More...</a><br /></td></tr>
<tr class="separator:ga089c859d9eddc5f9b4bd946cd53cebee"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga089c859d9eddc5f9b4bd946cd53cebee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac057927cd06c854b45fe7847e921bd47"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#gac057927cd06c854b45fe7847e921bd47">mi_good_size</a> (size_t size)</td></tr> <tr class="memitem:gac057927cd06c854b45fe7847e921bd47"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#gac057927cd06c854b45fe7847e921bd47">mi_good_size</a> (size_t size)</td></tr>
<tr class="memdesc:gac057927cd06c854b45fe7847e921bd47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the used allocation size. <a href="#gac057927cd06c854b45fe7847e921bd47">More...</a><br /></td></tr> <tr class="memdesc:gac057927cd06c854b45fe7847e921bd47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the used allocation size. <a href="group__extended.html#gac057927cd06c854b45fe7847e921bd47">More...</a><br /></td></tr>
<tr class="separator:gac057927cd06c854b45fe7847e921bd47"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gac057927cd06c854b45fe7847e921bd47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga421430e2226d7d468529cec457396756"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga421430e2226d7d468529cec457396756">mi_collect</a> (bool force)</td></tr> <tr class="memitem:ga421430e2226d7d468529cec457396756"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga421430e2226d7d468529cec457396756">mi_collect</a> (bool force)</td></tr>
<tr class="memdesc:ga421430e2226d7d468529cec457396756"><td class="mdescLeft">&#160;</td><td class="mdescRight">Eagerly free memory. <a href="#ga421430e2226d7d468529cec457396756">More...</a><br /></td></tr> <tr class="memdesc:ga421430e2226d7d468529cec457396756"><td class="mdescLeft">&#160;</td><td class="mdescRight">Eagerly free memory. <a href="group__extended.html#ga421430e2226d7d468529cec457396756">More...</a><br /></td></tr>
<tr class="separator:ga421430e2226d7d468529cec457396756"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga421430e2226d7d468529cec457396756"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2d126e5c62d3badc35445e5d84166df2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga2d126e5c62d3badc35445e5d84166df2">mi_stats_print</a> (void *out)</td></tr> <tr class="memitem:ga2d126e5c62d3badc35445e5d84166df2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga2d126e5c62d3badc35445e5d84166df2">mi_stats_print</a> (void *out)</td></tr>
<tr class="memdesc:ga2d126e5c62d3badc35445e5d84166df2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deprecated. <a href="#ga2d126e5c62d3badc35445e5d84166df2">More...</a><br /></td></tr> <tr class="memdesc:ga2d126e5c62d3badc35445e5d84166df2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deprecated. <a href="group__extended.html#ga2d126e5c62d3badc35445e5d84166df2">More...</a><br /></td></tr>
<tr class="separator:ga2d126e5c62d3badc35445e5d84166df2"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga2d126e5c62d3badc35445e5d84166df2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga537f13b299ddf801e49a5a94fde02c79"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga537f13b299ddf801e49a5a94fde02c79">mi_stats_print_out</a> (<a class="el" href="group__extended.html#gad823d23444a4b77a40f66bf075a98a0c">mi_output_fun</a> *out, void *arg)</td></tr> <tr class="memitem:ga537f13b299ddf801e49a5a94fde02c79"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga537f13b299ddf801e49a5a94fde02c79">mi_stats_print_out</a> (<a class="el" href="group__extended.html#gad823d23444a4b77a40f66bf075a98a0c">mi_output_fun</a> *out, void *arg)</td></tr>
<tr class="memdesc:ga537f13b299ddf801e49a5a94fde02c79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print the main statistics. <a href="#ga537f13b299ddf801e49a5a94fde02c79">More...</a><br /></td></tr> <tr class="memdesc:ga537f13b299ddf801e49a5a94fde02c79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print the main statistics. <a href="group__extended.html#ga537f13b299ddf801e49a5a94fde02c79">More...</a><br /></td></tr>
<tr class="separator:ga537f13b299ddf801e49a5a94fde02c79"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga537f13b299ddf801e49a5a94fde02c79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3bb8468b8cfcc6e2a61d98aee85c5f99"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga3bb8468b8cfcc6e2a61d98aee85c5f99">mi_stats_reset</a> (void)</td></tr> <tr class="memitem:ga3bb8468b8cfcc6e2a61d98aee85c5f99"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga3bb8468b8cfcc6e2a61d98aee85c5f99">mi_stats_reset</a> (void)</td></tr>
<tr class="memdesc:ga3bb8468b8cfcc6e2a61d98aee85c5f99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset statistics. <a href="#ga3bb8468b8cfcc6e2a61d98aee85c5f99">More...</a><br /></td></tr> <tr class="memdesc:ga3bb8468b8cfcc6e2a61d98aee85c5f99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset statistics. <a href="group__extended.html#ga3bb8468b8cfcc6e2a61d98aee85c5f99">More...</a><br /></td></tr>
<tr class="separator:ga3bb8468b8cfcc6e2a61d98aee85c5f99"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga3bb8468b8cfcc6e2a61d98aee85c5f99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga854b1de8cb067c7316286c28b2fcd3d1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga854b1de8cb067c7316286c28b2fcd3d1">mi_stats_merge</a> (void)</td></tr> <tr class="memitem:ga854b1de8cb067c7316286c28b2fcd3d1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga854b1de8cb067c7316286c28b2fcd3d1">mi_stats_merge</a> (void)</td></tr>
<tr class="memdesc:ga854b1de8cb067c7316286c28b2fcd3d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Merge thread local statistics with the main statistics and reset. <a href="#ga854b1de8cb067c7316286c28b2fcd3d1">More...</a><br /></td></tr> <tr class="memdesc:ga854b1de8cb067c7316286c28b2fcd3d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Merge thread local statistics with the main statistics and reset. <a href="group__extended.html#ga854b1de8cb067c7316286c28b2fcd3d1">More...</a><br /></td></tr>
<tr class="separator:ga854b1de8cb067c7316286c28b2fcd3d1"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga854b1de8cb067c7316286c28b2fcd3d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf8e73efc2cbca9ebfdfb166983a04c17"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#gaf8e73efc2cbca9ebfdfb166983a04c17">mi_thread_init</a> (void)</td></tr> <tr class="memitem:gaf8e73efc2cbca9ebfdfb166983a04c17"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#gaf8e73efc2cbca9ebfdfb166983a04c17">mi_thread_init</a> (void)</td></tr>
<tr class="memdesc:gaf8e73efc2cbca9ebfdfb166983a04c17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize mimalloc on a thread. <a href="#gaf8e73efc2cbca9ebfdfb166983a04c17">More...</a><br /></td></tr> <tr class="memdesc:gaf8e73efc2cbca9ebfdfb166983a04c17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize mimalloc on a thread. <a href="group__extended.html#gaf8e73efc2cbca9ebfdfb166983a04c17">More...</a><br /></td></tr>
<tr class="separator:gaf8e73efc2cbca9ebfdfb166983a04c17"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gaf8e73efc2cbca9ebfdfb166983a04c17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0ae4581e85453456a0d658b2b98bf7bf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga0ae4581e85453456a0d658b2b98bf7bf">mi_thread_done</a> (void)</td></tr> <tr class="memitem:ga0ae4581e85453456a0d658b2b98bf7bf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga0ae4581e85453456a0d658b2b98bf7bf">mi_thread_done</a> (void)</td></tr>
<tr class="memdesc:ga0ae4581e85453456a0d658b2b98bf7bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uninitialize mimalloc on a thread. <a href="#ga0ae4581e85453456a0d658b2b98bf7bf">More...</a><br /></td></tr> <tr class="memdesc:ga0ae4581e85453456a0d658b2b98bf7bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uninitialize mimalloc on a thread. <a href="group__extended.html#ga0ae4581e85453456a0d658b2b98bf7bf">More...</a><br /></td></tr>
<tr class="separator:ga0ae4581e85453456a0d658b2b98bf7bf"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga0ae4581e85453456a0d658b2b98bf7bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab1dac8476c46cb9eecab767eb40c1525"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#gab1dac8476c46cb9eecab767eb40c1525">mi_thread_stats_print_out</a> (<a class="el" href="group__extended.html#gad823d23444a4b77a40f66bf075a98a0c">mi_output_fun</a> *out, void *arg)</td></tr> <tr class="memitem:gab1dac8476c46cb9eecab767eb40c1525"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#gab1dac8476c46cb9eecab767eb40c1525">mi_thread_stats_print_out</a> (<a class="el" href="group__extended.html#gad823d23444a4b77a40f66bf075a98a0c">mi_output_fun</a> *out, void *arg)</td></tr>
<tr class="memdesc:gab1dac8476c46cb9eecab767eb40c1525"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print out heap statistics for this thread. <a href="#gab1dac8476c46cb9eecab767eb40c1525">More...</a><br /></td></tr> <tr class="memdesc:gab1dac8476c46cb9eecab767eb40c1525"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print out heap statistics for this thread. <a href="group__extended.html#gab1dac8476c46cb9eecab767eb40c1525">More...</a><br /></td></tr>
<tr class="separator:gab1dac8476c46cb9eecab767eb40c1525"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gab1dac8476c46cb9eecab767eb40c1525"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3460a6ca91af97be4058f523d3cb8ece"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga3460a6ca91af97be4058f523d3cb8ece">mi_register_deferred_free</a> (<a class="el" href="group__extended.html#ga299dae78d25ce112e384a98b7309c5be">mi_deferred_free_fun</a> *deferred_free, void *arg)</td></tr> <tr class="memitem:ga3460a6ca91af97be4058f523d3cb8ece"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga3460a6ca91af97be4058f523d3cb8ece">mi_register_deferred_free</a> (<a class="el" href="group__extended.html#ga299dae78d25ce112e384a98b7309c5be">mi_deferred_free_fun</a> *deferred_free, void *arg)</td></tr>
<tr class="memdesc:ga3460a6ca91af97be4058f523d3cb8ece"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a deferred free function. <a href="#ga3460a6ca91af97be4058f523d3cb8ece">More...</a><br /></td></tr> <tr class="memdesc:ga3460a6ca91af97be4058f523d3cb8ece"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a deferred free function. <a href="group__extended.html#ga3460a6ca91af97be4058f523d3cb8ece">More...</a><br /></td></tr>
<tr class="separator:ga3460a6ca91af97be4058f523d3cb8ece"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga3460a6ca91af97be4058f523d3cb8ece"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae5b17ff027cd2150b43a33040250cf3f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#gae5b17ff027cd2150b43a33040250cf3f">mi_register_output</a> (<a class="el" href="group__extended.html#gad823d23444a4b77a40f66bf075a98a0c">mi_output_fun</a> *out, void *arg)</td></tr> <tr class="memitem:gae5b17ff027cd2150b43a33040250cf3f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#gae5b17ff027cd2150b43a33040250cf3f">mi_register_output</a> (<a class="el" href="group__extended.html#gad823d23444a4b77a40f66bf075a98a0c">mi_output_fun</a> *out, void *arg)</td></tr>
<tr class="memdesc:gae5b17ff027cd2150b43a33040250cf3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register an output function. <a href="#gae5b17ff027cd2150b43a33040250cf3f">More...</a><br /></td></tr> <tr class="memdesc:gae5b17ff027cd2150b43a33040250cf3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register an output function. <a href="group__extended.html#gae5b17ff027cd2150b43a33040250cf3f">More...</a><br /></td></tr>
<tr class="separator:gae5b17ff027cd2150b43a33040250cf3f"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gae5b17ff027cd2150b43a33040250cf3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa1d55e0e894be240827e5d87ec3a1f45"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#gaa1d55e0e894be240827e5d87ec3a1f45">mi_register_error</a> (<a class="el" href="group__extended.html#ga251d369cda3f1c2a955c555486ed90e5">mi_error_fun</a> *errfun, void *arg)</td></tr> <tr class="memitem:gaa1d55e0e894be240827e5d87ec3a1f45"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#gaa1d55e0e894be240827e5d87ec3a1f45">mi_register_error</a> (<a class="el" href="group__extended.html#ga251d369cda3f1c2a955c555486ed90e5">mi_error_fun</a> *errfun, void *arg)</td></tr>
<tr class="memdesc:gaa1d55e0e894be240827e5d87ec3a1f45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register an error callback function. <a href="#gaa1d55e0e894be240827e5d87ec3a1f45">More...</a><br /></td></tr> <tr class="memdesc:gaa1d55e0e894be240827e5d87ec3a1f45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register an error callback function. <a href="group__extended.html#gaa1d55e0e894be240827e5d87ec3a1f45">More...</a><br /></td></tr>
<tr class="separator:gaa1d55e0e894be240827e5d87ec3a1f45"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gaa1d55e0e894be240827e5d87ec3a1f45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5f071b10d4df1c3658e04e7fd67a94e6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga5f071b10d4df1c3658e04e7fd67a94e6">mi_is_in_heap_region</a> (const void *p)</td></tr> <tr class="memitem:ga5f071b10d4df1c3658e04e7fd67a94e6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga5f071b10d4df1c3658e04e7fd67a94e6">mi_is_in_heap_region</a> (const void *p)</td></tr>
<tr class="memdesc:ga5f071b10d4df1c3658e04e7fd67a94e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is a pointer part of our heap? <a href="#ga5f071b10d4df1c3658e04e7fd67a94e6">More...</a><br /></td></tr> <tr class="memdesc:ga5f071b10d4df1c3658e04e7fd67a94e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is a pointer part of our heap? <a href="group__extended.html#ga5f071b10d4df1c3658e04e7fd67a94e6">More...</a><br /></td></tr>
<tr class="separator:ga5f071b10d4df1c3658e04e7fd67a94e6"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga5f071b10d4df1c3658e04e7fd67a94e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga00ec3324b6b2591c7fe3677baa30a767"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga00ec3324b6b2591c7fe3677baa30a767">mi_reserve_os_memory</a> (size_t size, bool commit, bool allow_large)</td></tr>
<tr class="memdesc:ga00ec3324b6b2591c7fe3677baa30a767"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserve OS memory for use by mimalloc. <a href="group__extended.html#ga00ec3324b6b2591c7fe3677baa30a767">More...</a><br /></td></tr>
<tr class="separator:ga00ec3324b6b2591c7fe3677baa30a767"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4c6486a1fdcd7a423b5f25fe4be8e0cf"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga4c6486a1fdcd7a423b5f25fe4be8e0cf">mi_manage_os_memory</a> (void *start, size_t size, bool is_committed, bool is_large, bool is_zero, int numa_node)</td></tr>
<tr class="memdesc:ga4c6486a1fdcd7a423b5f25fe4be8e0cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Manage a particular memory area for use by mimalloc. <a href="group__extended.html#ga4c6486a1fdcd7a423b5f25fe4be8e0cf">More...</a><br /></td></tr>
<tr class="separator:ga4c6486a1fdcd7a423b5f25fe4be8e0cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3132f521fb756fc0e8ec0b74fb58df50"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga3132f521fb756fc0e8ec0b74fb58df50">mi_reserve_huge_os_pages_interleave</a> (size_t pages, size_t numa_nodes, size_t timeout_msecs)</td></tr> <tr class="memitem:ga3132f521fb756fc0e8ec0b74fb58df50"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga3132f521fb756fc0e8ec0b74fb58df50">mi_reserve_huge_os_pages_interleave</a> (size_t pages, size_t numa_nodes, size_t timeout_msecs)</td></tr>
<tr class="memdesc:ga3132f521fb756fc0e8ec0b74fb58df50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserve <em>pages</em> of huge OS pages (1GiB) evenly divided over <em>numa_nodes</em> nodes, but stops after at most <code>timeout_msecs</code> seconds. <a href="#ga3132f521fb756fc0e8ec0b74fb58df50">More...</a><br /></td></tr> <tr class="memdesc:ga3132f521fb756fc0e8ec0b74fb58df50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserve <em>pages</em> of huge OS pages (1GiB) evenly divided over <em>numa_nodes</em> nodes, but stops after at most <code>timeout_msecs</code> seconds. <a href="group__extended.html#ga3132f521fb756fc0e8ec0b74fb58df50">More...</a><br /></td></tr>
<tr class="separator:ga3132f521fb756fc0e8ec0b74fb58df50"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga3132f521fb756fc0e8ec0b74fb58df50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7795a13d20087447281858d2c771cca1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga7795a13d20087447281858d2c771cca1">mi_reserve_huge_os_pages_at</a> (size_t pages, int numa_node, size_t timeout_msecs)</td></tr> <tr class="memitem:ga7795a13d20087447281858d2c771cca1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga7795a13d20087447281858d2c771cca1">mi_reserve_huge_os_pages_at</a> (size_t pages, int numa_node, size_t timeout_msecs)</td></tr>
<tr class="memdesc:ga7795a13d20087447281858d2c771cca1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserve <em>pages</em> of huge OS pages (1GiB) at a specific <em>numa_node</em>, but stops after at most <code>timeout_msecs</code> seconds. <a href="#ga7795a13d20087447281858d2c771cca1">More...</a><br /></td></tr> <tr class="memdesc:ga7795a13d20087447281858d2c771cca1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserve <em>pages</em> of huge OS pages (1GiB) at a specific <em>numa_node</em>, but stops after at most <code>timeout_msecs</code> seconds. <a href="group__extended.html#ga7795a13d20087447281858d2c771cca1">More...</a><br /></td></tr>
<tr class="separator:ga7795a13d20087447281858d2c771cca1"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga7795a13d20087447281858d2c771cca1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaad25050b19f30cd79397b227e0157a3f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#gaad25050b19f30cd79397b227e0157a3f">mi_is_redirected</a> ()</td></tr> <tr class="memitem:gaad25050b19f30cd79397b227e0157a3f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#gaad25050b19f30cd79397b227e0157a3f">mi_is_redirected</a> ()</td></tr>
<tr class="memdesc:gaad25050b19f30cd79397b227e0157a3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the C runtime <em>malloc</em> API redirected? <a href="#gaad25050b19f30cd79397b227e0157a3f">More...</a><br /></td></tr> <tr class="memdesc:gaad25050b19f30cd79397b227e0157a3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the C runtime <em>malloc</em> API redirected? <a href="group__extended.html#gaad25050b19f30cd79397b227e0157a3f">More...</a><br /></td></tr>
<tr class="separator:gaad25050b19f30cd79397b227e0157a3f"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gaad25050b19f30cd79397b227e0157a3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7d862c2affd5790381da14eb102a364d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga7d862c2affd5790381da14eb102a364d">mi_process_info</a> (size_t *elapsed_msecs, size_t *user_msecs, size_t *system_msecs, size_t *current_rss, size_t *peak_rss, size_t *current_commit, size_t *peak_commit, size_t *page_faults)</td></tr> <tr class="memitem:ga7d862c2affd5790381da14eb102a364d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__extended.html#ga7d862c2affd5790381da14eb102a364d">mi_process_info</a> (size_t *elapsed_msecs, size_t *user_msecs, size_t *system_msecs, size_t *current_rss, size_t *peak_rss, size_t *current_commit, size_t *peak_commit, size_t *page_faults)</td></tr>
<tr class="memdesc:ga7d862c2affd5790381da14eb102a364d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return process information (time and memory usage). <a href="#ga7d862c2affd5790381da14eb102a364d">More...</a><br /></td></tr> <tr class="memdesc:ga7d862c2affd5790381da14eb102a364d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return process information (time and memory usage). <a href="group__extended.html#ga7d862c2affd5790381da14eb102a364d">More...</a><br /></td></tr>
<tr class="separator:ga7d862c2affd5790381da14eb102a364d"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga7d862c2affd5790381da14eb102a364d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table> </table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@ -414,6 +416,72 @@ Functions</h2></td></tr>
</dl> </dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer to newly allocated memory of at least <em>size</em> bytes, or <em>NULL</em> if out of memory. This function is meant for use in run-time systems for best performance and does not check if <em>size</em> was indeed small &ndash; use with care! </dd></dl> <dl class="section return"><dt>Returns</dt><dd>a pointer to newly allocated memory of at least <em>size</em> bytes, or <em>NULL</em> if out of memory. This function is meant for use in run-time systems for best performance and does not check if <em>size</em> was indeed small &ndash; use with care! </dd></dl>
</div>
</div>
<a id="ga4c6486a1fdcd7a423b5f25fe4be8e0cf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4c6486a1fdcd7a423b5f25fe4be8e0cf">&#9670;&nbsp;</a></span>mi_manage_os_memory()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool mi_manage_os_memory </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>is_committed</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>is_large</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>is_zero</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>numa_node</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Manage a particular memory area for use by mimalloc. </p>
<p>This is just like <code>mi_reserve_os_memory</code> except that the area should already be allocated in some manner and available for use my mimalloc. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">start</td><td>Start of the memory area </td></tr>
<tr><td class="paramname">size</td><td>The size of the memory area. </td></tr>
<tr><td class="paramname">commit</td><td>Is the area already committed? </td></tr>
<tr><td class="paramname">is_large</td><td>Does it consist of large OS pages? Set this to <em>true</em> as well for memory that should not be decommitted or protected (like rdma etc.) </td></tr>
<tr><td class="paramname">is_zero</td><td>Does the area consists of zero's? </td></tr>
<tr><td class="paramname">numa_node</td><td>Possible associated numa node or <code>-1</code>. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><em>true</em> if successful, and <em>false</em> on error. </dd></dl>
</div> </div>
</div> </div>
<a id="ga7d862c2affd5790381da14eb102a364d"></a> <a id="ga7d862c2affd5790381da14eb102a364d"></a>
@ -706,6 +774,51 @@ Functions</h2></td></tr>
<dl class="section return"><dt>Returns</dt><dd>0 if successfull, <em>ENOMEM</em> if running out of memory, or <em>ETIMEDOUT</em> if timed out.</dd></dl> <dl class="section return"><dt>Returns</dt><dd>0 if successfull, <em>ENOMEM</em> if running out of memory, or <em>ETIMEDOUT</em> if timed out.</dd></dl>
<p>The reserved memory is used by mimalloc to satisfy allocations. May quit before <em>timeout_msecs</em> are expired if it estimates it will take more than 1.5 times <em>timeout_msecs</em>. The time limit is needed because on some operating systems it can take a long time to reserve contiguous memory if the physical memory is fragmented. </p> <p>The reserved memory is used by mimalloc to satisfy allocations. May quit before <em>timeout_msecs</em> are expired if it estimates it will take more than 1.5 times <em>timeout_msecs</em>. The time limit is needed because on some operating systems it can take a long time to reserve contiguous memory if the physical memory is fragmented. </p>
</div>
</div>
<a id="ga00ec3324b6b2591c7fe3677baa30a767"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga00ec3324b6b2591c7fe3677baa30a767">&#9670;&nbsp;</a></span>mi_reserve_os_memory()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int mi_reserve_os_memory </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>commit</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>allow_large</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Reserve OS memory for use by mimalloc. </p>
<p>Reserved areas are used before allocating from the OS again. By reserving a large area upfront, allocation can be more efficient, and can be better managed on systems without <code>mmap</code>/<code>VirtualAlloc</code> (like WASM for example). </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">size</td><td>The size to reserve. </td></tr>
<tr><td class="paramname">commit</td><td>Commit the memory upfront. </td></tr>
<tr><td class="paramname">allow_large</td><td>Allow large OS pages (2MiB) to be used? </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><em>0</em> if successful, and an error code otherwise (e.g. <code>ENOMEM</code>). </dd></dl>
</div> </div>
</div> </div>
<a id="ga854b1de8cb067c7316286c28b2fcd3d1"></a> <a id="ga854b1de8cb067c7316286c28b2fcd3d1"></a>
@ -958,9 +1071,7 @@ Functions</h2></td></tr>
<!-- start footer part --> <!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul> <ul>
<li class="footer">Generated by <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul> </ul>
</div> </div>
</body> </body>

View File

@ -9,12 +9,14 @@ var group__extended =
[ "mi_is_in_heap_region", "group__extended.html#ga5f071b10d4df1c3658e04e7fd67a94e6", null ], [ "mi_is_in_heap_region", "group__extended.html#ga5f071b10d4df1c3658e04e7fd67a94e6", null ],
[ "mi_is_redirected", "group__extended.html#gaad25050b19f30cd79397b227e0157a3f", null ], [ "mi_is_redirected", "group__extended.html#gaad25050b19f30cd79397b227e0157a3f", null ],
[ "mi_malloc_small", "group__extended.html#ga7136c2e55cb22c98ecf95d08d6debb99", null ], [ "mi_malloc_small", "group__extended.html#ga7136c2e55cb22c98ecf95d08d6debb99", null ],
[ "mi_manage_os_memory", "group__extended.html#ga4c6486a1fdcd7a423b5f25fe4be8e0cf", null ],
[ "mi_process_info", "group__extended.html#ga7d862c2affd5790381da14eb102a364d", null ], [ "mi_process_info", "group__extended.html#ga7d862c2affd5790381da14eb102a364d", null ],
[ "mi_register_deferred_free", "group__extended.html#ga3460a6ca91af97be4058f523d3cb8ece", null ], [ "mi_register_deferred_free", "group__extended.html#ga3460a6ca91af97be4058f523d3cb8ece", null ],
[ "mi_register_error", "group__extended.html#gaa1d55e0e894be240827e5d87ec3a1f45", null ], [ "mi_register_error", "group__extended.html#gaa1d55e0e894be240827e5d87ec3a1f45", null ],
[ "mi_register_output", "group__extended.html#gae5b17ff027cd2150b43a33040250cf3f", null ], [ "mi_register_output", "group__extended.html#gae5b17ff027cd2150b43a33040250cf3f", null ],
[ "mi_reserve_huge_os_pages_at", "group__extended.html#ga7795a13d20087447281858d2c771cca1", null ], [ "mi_reserve_huge_os_pages_at", "group__extended.html#ga7795a13d20087447281858d2c771cca1", null ],
[ "mi_reserve_huge_os_pages_interleave", "group__extended.html#ga3132f521fb756fc0e8ec0b74fb58df50", null ], [ "mi_reserve_huge_os_pages_interleave", "group__extended.html#ga3132f521fb756fc0e8ec0b74fb58df50", null ],
[ "mi_reserve_os_memory", "group__extended.html#ga00ec3324b6b2591c7fe3677baa30a767", null ],
[ "mi_stats_merge", "group__extended.html#ga854b1de8cb067c7316286c28b2fcd3d1", null ], [ "mi_stats_merge", "group__extended.html#ga854b1de8cb067c7316286c28b2fcd3d1", null ],
[ "mi_stats_print", "group__extended.html#ga2d126e5c62d3badc35445e5d84166df2", null ], [ "mi_stats_print", "group__extended.html#ga2d126e5c62d3badc35445e5d84166df2", null ],
[ "mi_stats_print_out", "group__extended.html#ga537f13b299ddf801e49a5a94fde02c79", null ], [ "mi_stats_print_out", "group__extended.html#ga537f13b299ddf801e49a5a94fde02c79", null ],

View File

@ -3,7 +3,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mi-malloc: Heap Allocation</title> <title>mi-malloc: Heap Allocation</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -13,10 +13,6 @@
<script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script> <script type="text/javascript" src="search/search.js"></script>
@ -37,21 +33,21 @@
<td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td> <td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mi-malloc <div id="projectname">mi-malloc
&#160;<span id="projectnumber">1.6</span> &#160;<span id="projectnumber">1.7/2.0</span>
</div> </div>
</td> </td>
<td> <div id="MSearchBox" class="MSearchBoxInactive"> <td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left"> <span class="left">
<img id="MSearchSelect" src="search/mag_sel.png" <img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()" onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()" onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/> alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S" <input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)" onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)" onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/> onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right"> </span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span> </span>
</div> </div>
</td> </td>
@ -60,10 +56,10 @@
</table> </table>
</div> </div>
<!-- end header part --> <!-- end header part -->
<!-- Generated by Doxygen 1.8.15 --> <!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search'); var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */ /* @license-end */
</script> </script>
</div><!-- top --> </div><!-- top -->
@ -73,13 +69,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-sync" class="sync"></div> <div id="nav-sync" class="sync"></div>
</div> </div>
</div> </div>
<div id="splitbar" style="-moz-user-select:none;" <div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle"> class="ui-resizable-handle">
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group__heap.html','');}); $(document).ready(function(){initNavTree('group__heap.html',''); initResizable(); });
/* @license-end */ /* @license-end */
</script> </script>
<div id="doc-content"> <div id="doc-content">
@ -92,7 +88,7 @@ $(document).ready(function(){initNavTree('group__heap.html','');});
<!-- iframe showing the search results (closed by default) --> <!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow"> <div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" <iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults"> name="MSearchResults" id="MSearchResults">
</iframe> </iframe>
</div> </div>
@ -106,61 +102,61 @@ $(document).ready(function(){initNavTree('group__heap.html','');});
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<p>First-class heaps that can be destroyed in one go. <p>First-class heaps that can be destroyed in one go.
<a href="#details">More...</a></p> <a href="#details">More...</a></p>
<table class="memberdecls"> <table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr> Typedefs</h2></td></tr>
<tr class="memitem:ga34a47cde5a5b38c29f1aa3c5e76943c2"><td class="memItemLeft" align="right" valign="top">typedef struct mi_heap_s&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a></td></tr> <tr class="memitem:ga34a47cde5a5b38c29f1aa3c5e76943c2"><td class="memItemLeft" align="right" valign="top">typedef struct mi_heap_s&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a></td></tr>
<tr class="memdesc:ga34a47cde5a5b38c29f1aa3c5e76943c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of first-class heaps. <a href="#ga34a47cde5a5b38c29f1aa3c5e76943c2">More...</a><br /></td></tr> <tr class="memdesc:ga34a47cde5a5b38c29f1aa3c5e76943c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of first-class heaps. <a href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">More...</a><br /></td></tr>
<tr class="separator:ga34a47cde5a5b38c29f1aa3c5e76943c2"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga34a47cde5a5b38c29f1aa3c5e76943c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls"> </table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr> Functions</h2></td></tr>
<tr class="memitem:ga766f672ba56f2fbfeb9d9dbb0b7f6b11"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga766f672ba56f2fbfeb9d9dbb0b7f6b11">mi_heap_new</a> ()</td></tr> <tr class="memitem:ga766f672ba56f2fbfeb9d9dbb0b7f6b11"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga766f672ba56f2fbfeb9d9dbb0b7f6b11">mi_heap_new</a> ()</td></tr>
<tr class="memdesc:ga766f672ba56f2fbfeb9d9dbb0b7f6b11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new heap that can be used for allocation. <a href="#ga766f672ba56f2fbfeb9d9dbb0b7f6b11">More...</a><br /></td></tr> <tr class="memdesc:ga766f672ba56f2fbfeb9d9dbb0b7f6b11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new heap that can be used for allocation. <a href="group__heap.html#ga766f672ba56f2fbfeb9d9dbb0b7f6b11">More...</a><br /></td></tr>
<tr class="separator:ga766f672ba56f2fbfeb9d9dbb0b7f6b11"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga766f672ba56f2fbfeb9d9dbb0b7f6b11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2ab1af8d438819b55319c7ef51d1e409"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga2ab1af8d438819b55319c7ef51d1e409">mi_heap_delete</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap)</td></tr> <tr class="memitem:ga2ab1af8d438819b55319c7ef51d1e409"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga2ab1af8d438819b55319c7ef51d1e409">mi_heap_delete</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap)</td></tr>
<tr class="memdesc:ga2ab1af8d438819b55319c7ef51d1e409"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a previously allocated heap. <a href="#ga2ab1af8d438819b55319c7ef51d1e409">More...</a><br /></td></tr> <tr class="memdesc:ga2ab1af8d438819b55319c7ef51d1e409"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a previously allocated heap. <a href="group__heap.html#ga2ab1af8d438819b55319c7ef51d1e409">More...</a><br /></td></tr>
<tr class="separator:ga2ab1af8d438819b55319c7ef51d1e409"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga2ab1af8d438819b55319c7ef51d1e409"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9f9c0844edb9717f4feacd79116b8e0d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga9f9c0844edb9717f4feacd79116b8e0d">mi_heap_destroy</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap)</td></tr> <tr class="memitem:ga9f9c0844edb9717f4feacd79116b8e0d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga9f9c0844edb9717f4feacd79116b8e0d">mi_heap_destroy</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap)</td></tr>
<tr class="memdesc:ga9f9c0844edb9717f4feacd79116b8e0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy a heap, freeing all its still allocated blocks. <a href="#ga9f9c0844edb9717f4feacd79116b8e0d">More...</a><br /></td></tr> <tr class="memdesc:ga9f9c0844edb9717f4feacd79116b8e0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy a heap, freeing all its still allocated blocks. <a href="group__heap.html#ga9f9c0844edb9717f4feacd79116b8e0d">More...</a><br /></td></tr>
<tr class="separator:ga9f9c0844edb9717f4feacd79116b8e0d"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga9f9c0844edb9717f4feacd79116b8e0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab8631ec88c8d26641b68b5d25dcd4422"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#gab8631ec88c8d26641b68b5d25dcd4422">mi_heap_set_default</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap)</td></tr> <tr class="memitem:gab8631ec88c8d26641b68b5d25dcd4422"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#gab8631ec88c8d26641b68b5d25dcd4422">mi_heap_set_default</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap)</td></tr>
<tr class="memdesc:gab8631ec88c8d26641b68b5d25dcd4422"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the default heap to use for <a class="el" href="group__malloc.html#ga3406e8b168bc74c8637b11571a6da83a" title="Allocate size bytes.">mi_malloc()</a> et al. <a href="#gab8631ec88c8d26641b68b5d25dcd4422">More...</a><br /></td></tr> <tr class="memdesc:gab8631ec88c8d26641b68b5d25dcd4422"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the default heap to use for <a class="el" href="group__malloc.html#ga3406e8b168bc74c8637b11571a6da83a" title="Allocate size bytes.">mi_malloc()</a> et al. <a href="group__heap.html#gab8631ec88c8d26641b68b5d25dcd4422">More...</a><br /></td></tr>
<tr class="separator:gab8631ec88c8d26641b68b5d25dcd4422"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gab8631ec88c8d26641b68b5d25dcd4422"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8db4cbb87314a989a9a187464d6b5e05"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga8db4cbb87314a989a9a187464d6b5e05">mi_heap_get_default</a> ()</td></tr> <tr class="memitem:ga8db4cbb87314a989a9a187464d6b5e05"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga8db4cbb87314a989a9a187464d6b5e05">mi_heap_get_default</a> ()</td></tr>
<tr class="memdesc:ga8db4cbb87314a989a9a187464d6b5e05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the default heap that is used for <a class="el" href="group__malloc.html#ga3406e8b168bc74c8637b11571a6da83a" title="Allocate size bytes.">mi_malloc()</a> et al. <a href="#ga8db4cbb87314a989a9a187464d6b5e05">More...</a><br /></td></tr> <tr class="memdesc:ga8db4cbb87314a989a9a187464d6b5e05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the default heap that is used for <a class="el" href="group__malloc.html#ga3406e8b168bc74c8637b11571a6da83a" title="Allocate size bytes.">mi_malloc()</a> et al. <a href="group__heap.html#ga8db4cbb87314a989a9a187464d6b5e05">More...</a><br /></td></tr>
<tr class="separator:ga8db4cbb87314a989a9a187464d6b5e05"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga8db4cbb87314a989a9a187464d6b5e05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5d03fbe062ffcf38f0f417fd968357fc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga5d03fbe062ffcf38f0f417fd968357fc">mi_heap_get_backing</a> ()</td></tr> <tr class="memitem:ga5d03fbe062ffcf38f0f417fd968357fc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga5d03fbe062ffcf38f0f417fd968357fc">mi_heap_get_backing</a> ()</td></tr>
<tr class="memdesc:ga5d03fbe062ffcf38f0f417fd968357fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the backing heap. <a href="#ga5d03fbe062ffcf38f0f417fd968357fc">More...</a><br /></td></tr> <tr class="memdesc:ga5d03fbe062ffcf38f0f417fd968357fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the backing heap. <a href="group__heap.html#ga5d03fbe062ffcf38f0f417fd968357fc">More...</a><br /></td></tr>
<tr class="separator:ga5d03fbe062ffcf38f0f417fd968357fc"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga5d03fbe062ffcf38f0f417fd968357fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7922f7495cde30b1984d0e6072419298"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga7922f7495cde30b1984d0e6072419298">mi_heap_collect</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, bool force)</td></tr> <tr class="memitem:ga7922f7495cde30b1984d0e6072419298"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga7922f7495cde30b1984d0e6072419298">mi_heap_collect</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, bool force)</td></tr>
<tr class="memdesc:ga7922f7495cde30b1984d0e6072419298"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release outstanding resources in a specific heap. <a href="#ga7922f7495cde30b1984d0e6072419298">More...</a><br /></td></tr> <tr class="memdesc:ga7922f7495cde30b1984d0e6072419298"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release outstanding resources in a specific heap. <a href="group__heap.html#ga7922f7495cde30b1984d0e6072419298">More...</a><br /></td></tr>
<tr class="separator:ga7922f7495cde30b1984d0e6072419298"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga7922f7495cde30b1984d0e6072419298"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9cbed01e42c0647907295de92c3fa296"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga9cbed01e42c0647907295de92c3fa296">mi_heap_malloc</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, size_t size)</td></tr> <tr class="memitem:ga9cbed01e42c0647907295de92c3fa296"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga9cbed01e42c0647907295de92c3fa296">mi_heap_malloc</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, size_t size)</td></tr>
<tr class="memdesc:ga9cbed01e42c0647907295de92c3fa296"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate in a specific heap. <a href="#ga9cbed01e42c0647907295de92c3fa296">More...</a><br /></td></tr> <tr class="memdesc:ga9cbed01e42c0647907295de92c3fa296"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate in a specific heap. <a href="group__heap.html#ga9cbed01e42c0647907295de92c3fa296">More...</a><br /></td></tr>
<tr class="separator:ga9cbed01e42c0647907295de92c3fa296"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga9cbed01e42c0647907295de92c3fa296"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa1a1c7a1f4da6826b5a25b70ef878368"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#gaa1a1c7a1f4da6826b5a25b70ef878368">mi_heap_malloc_small</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, size_t size)</td></tr> <tr class="memitem:gaa1a1c7a1f4da6826b5a25b70ef878368"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#gaa1a1c7a1f4da6826b5a25b70ef878368">mi_heap_malloc_small</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, size_t size)</td></tr>
<tr class="memdesc:gaa1a1c7a1f4da6826b5a25b70ef878368"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a small object in a specific heap. <a href="#gaa1a1c7a1f4da6826b5a25b70ef878368">More...</a><br /></td></tr> <tr class="memdesc:gaa1a1c7a1f4da6826b5a25b70ef878368"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a small object in a specific heap. <a href="group__heap.html#gaa1a1c7a1f4da6826b5a25b70ef878368">More...</a><br /></td></tr>
<tr class="separator:gaa1a1c7a1f4da6826b5a25b70ef878368"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gaa1a1c7a1f4da6826b5a25b70ef878368"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga903104592c8ed53417a3762da6241133"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga903104592c8ed53417a3762da6241133">mi_heap_zalloc</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, size_t size)</td></tr> <tr class="memitem:ga903104592c8ed53417a3762da6241133"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga903104592c8ed53417a3762da6241133">mi_heap_zalloc</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, size_t size)</td></tr>
<tr class="memdesc:ga903104592c8ed53417a3762da6241133"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate zero-initialized in a specific heap. <a href="#ga903104592c8ed53417a3762da6241133">More...</a><br /></td></tr> <tr class="memdesc:ga903104592c8ed53417a3762da6241133"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate zero-initialized in a specific heap. <a href="group__heap.html#ga903104592c8ed53417a3762da6241133">More...</a><br /></td></tr>
<tr class="separator:ga903104592c8ed53417a3762da6241133"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga903104592c8ed53417a3762da6241133"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa6702b3c48e9e53e50e81b36f5011d55"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#gaa6702b3c48e9e53e50e81b36f5011d55">mi_heap_calloc</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, size_t count, size_t size)</td></tr> <tr class="memitem:gaa6702b3c48e9e53e50e81b36f5011d55"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#gaa6702b3c48e9e53e50e81b36f5011d55">mi_heap_calloc</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, size_t count, size_t size)</td></tr>
<tr class="memdesc:gaa6702b3c48e9e53e50e81b36f5011d55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate <em>count</em> zero-initialized elements in a specific heap. <a href="#gaa6702b3c48e9e53e50e81b36f5011d55">More...</a><br /></td></tr> <tr class="memdesc:gaa6702b3c48e9e53e50e81b36f5011d55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate <em>count</em> zero-initialized elements in a specific heap. <a href="group__heap.html#gaa6702b3c48e9e53e50e81b36f5011d55">More...</a><br /></td></tr>
<tr class="separator:gaa6702b3c48e9e53e50e81b36f5011d55"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gaa6702b3c48e9e53e50e81b36f5011d55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga851da6c43fe0b71c1376cee8aef90db0"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga851da6c43fe0b71c1376cee8aef90db0">mi_heap_mallocn</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, size_t count, size_t size)</td></tr> <tr class="memitem:ga851da6c43fe0b71c1376cee8aef90db0"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga851da6c43fe0b71c1376cee8aef90db0">mi_heap_mallocn</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, size_t count, size_t size)</td></tr>
<tr class="memdesc:ga851da6c43fe0b71c1376cee8aef90db0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate <em>count</em> elements in a specific heap. <a href="#ga851da6c43fe0b71c1376cee8aef90db0">More...</a><br /></td></tr> <tr class="memdesc:ga851da6c43fe0b71c1376cee8aef90db0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate <em>count</em> elements in a specific heap. <a href="group__heap.html#ga851da6c43fe0b71c1376cee8aef90db0">More...</a><br /></td></tr>
<tr class="separator:ga851da6c43fe0b71c1376cee8aef90db0"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga851da6c43fe0b71c1376cee8aef90db0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga139d6b09dbf50c3c2523d0f4d1cfdeb5"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga139d6b09dbf50c3c2523d0f4d1cfdeb5">mi_heap_strdup</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, const char *s)</td></tr> <tr class="memitem:ga139d6b09dbf50c3c2523d0f4d1cfdeb5"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga139d6b09dbf50c3c2523d0f4d1cfdeb5">mi_heap_strdup</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, const char *s)</td></tr>
<tr class="memdesc:ga139d6b09dbf50c3c2523d0f4d1cfdeb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicate a string in a specific heap. <a href="#ga139d6b09dbf50c3c2523d0f4d1cfdeb5">More...</a><br /></td></tr> <tr class="memdesc:ga139d6b09dbf50c3c2523d0f4d1cfdeb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicate a string in a specific heap. <a href="group__heap.html#ga139d6b09dbf50c3c2523d0f4d1cfdeb5">More...</a><br /></td></tr>
<tr class="separator:ga139d6b09dbf50c3c2523d0f4d1cfdeb5"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga139d6b09dbf50c3c2523d0f4d1cfdeb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8e3dbd46650dd26573cf307a2c8f1f5a"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga8e3dbd46650dd26573cf307a2c8f1f5a">mi_heap_strndup</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, const char *s, size_t n)</td></tr> <tr class="memitem:ga8e3dbd46650dd26573cf307a2c8f1f5a"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga8e3dbd46650dd26573cf307a2c8f1f5a">mi_heap_strndup</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, const char *s, size_t n)</td></tr>
<tr class="memdesc:ga8e3dbd46650dd26573cf307a2c8f1f5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicate a string of at most length <em>n</em> in a specific heap. <a href="#ga8e3dbd46650dd26573cf307a2c8f1f5a">More...</a><br /></td></tr> <tr class="memdesc:ga8e3dbd46650dd26573cf307a2c8f1f5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicate a string of at most length <em>n</em> in a specific heap. <a href="group__heap.html#ga8e3dbd46650dd26573cf307a2c8f1f5a">More...</a><br /></td></tr>
<tr class="separator:ga8e3dbd46650dd26573cf307a2c8f1f5a"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga8e3dbd46650dd26573cf307a2c8f1f5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga00e95ba1e01acac3cfd95bb7a357a6f0"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga00e95ba1e01acac3cfd95bb7a357a6f0">mi_heap_realpath</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, const char *fname, char *resolved_name)</td></tr> <tr class="memitem:ga00e95ba1e01acac3cfd95bb7a357a6f0"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#ga00e95ba1e01acac3cfd95bb7a357a6f0">mi_heap_realpath</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, const char *fname, char *resolved_name)</td></tr>
<tr class="memdesc:ga00e95ba1e01acac3cfd95bb7a357a6f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resolve a file path name using a specific <em>heap</em> to allocate the result. <a href="#ga00e95ba1e01acac3cfd95bb7a357a6f0">More...</a><br /></td></tr> <tr class="memdesc:ga00e95ba1e01acac3cfd95bb7a357a6f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resolve a file path name using a specific <em>heap</em> to allocate the result. <a href="group__heap.html#ga00e95ba1e01acac3cfd95bb7a357a6f0">More...</a><br /></td></tr>
<tr class="separator:ga00e95ba1e01acac3cfd95bb7a357a6f0"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga00e95ba1e01acac3cfd95bb7a357a6f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaef3395f66be48f37bdc8322509c5d81"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#gaaef3395f66be48f37bdc8322509c5d81">mi_heap_realloc</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, void *p, size_t newsize)</td></tr> <tr class="memitem:gaaef3395f66be48f37bdc8322509c5d81"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__heap.html#gaaef3395f66be48f37bdc8322509c5d81">mi_heap_realloc</a> (<a class="el" href="group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2">mi_heap_t</a> *heap, void *p, size_t newsize)</td></tr>
<tr class="separator:gaaef3395f66be48f37bdc8322509c5d81"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gaaef3395f66be48f37bdc8322509c5d81"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -1071,9 +1067,7 @@ Functions</h2></td></tr>
<!-- start footer part --> <!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul> <ul>
<li class="footer">Generated by <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul> </ul>
</div> </div>
</body> </body>

View File

@ -3,7 +3,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mi-malloc: Basic Allocation</title> <title>mi-malloc: Basic Allocation</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -13,10 +13,6 @@
<script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script> <script type="text/javascript" src="search/search.js"></script>
@ -37,21 +33,21 @@
<td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td> <td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mi-malloc <div id="projectname">mi-malloc
&#160;<span id="projectnumber">1.6</span> &#160;<span id="projectnumber">1.7/2.0</span>
</div> </div>
</td> </td>
<td> <div id="MSearchBox" class="MSearchBoxInactive"> <td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left"> <span class="left">
<img id="MSearchSelect" src="search/mag_sel.png" <img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()" onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()" onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/> alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S" <input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)" onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)" onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/> onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right"> </span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span> </span>
</div> </div>
</td> </td>
@ -60,10 +56,10 @@
</table> </table>
</div> </div>
<!-- end header part --> <!-- end header part -->
<!-- Generated by Doxygen 1.8.15 --> <!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search'); var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */ /* @license-end */
</script> </script>
</div><!-- top --> </div><!-- top -->
@ -73,13 +69,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-sync" class="sync"></div> <div id="nav-sync" class="sync"></div>
</div> </div>
</div> </div>
<div id="splitbar" style="-moz-user-select:none;" <div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle"> class="ui-resizable-handle">
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group__malloc.html','');}); $(document).ready(function(){initNavTree('group__malloc.html',''); initResizable(); });
/* @license-end */ /* @license-end */
</script> </script>
<div id="doc-content"> <div id="doc-content">
@ -92,7 +88,7 @@ $(document).ready(function(){initNavTree('group__malloc.html','');});
<!-- iframe showing the search results (closed by default) --> <!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow"> <div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" <iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults"> name="MSearchResults" id="MSearchResults">
</iframe> </iframe>
</div> </div>
@ -105,49 +101,49 @@ $(document).ready(function(){initNavTree('group__malloc.html','');});
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<p>The basic allocation interface. <p>The basic allocation interface.
<a href="#details">More...</a></p> <a href="#details">More...</a></p>
<table class="memberdecls"> <table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr> Functions</h2></td></tr>
<tr class="memitem:gaf2c7b89c327d1f60f59e68b9ea644d95"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#gaf2c7b89c327d1f60f59e68b9ea644d95">mi_free</a> (void *p)</td></tr> <tr class="memitem:gaf2c7b89c327d1f60f59e68b9ea644d95"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#gaf2c7b89c327d1f60f59e68b9ea644d95">mi_free</a> (void *p)</td></tr>
<tr class="memdesc:gaf2c7b89c327d1f60f59e68b9ea644d95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free previously allocated memory. <a href="#gaf2c7b89c327d1f60f59e68b9ea644d95">More...</a><br /></td></tr> <tr class="memdesc:gaf2c7b89c327d1f60f59e68b9ea644d95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free previously allocated memory. <a href="group__malloc.html#gaf2c7b89c327d1f60f59e68b9ea644d95">More...</a><br /></td></tr>
<tr class="separator:gaf2c7b89c327d1f60f59e68b9ea644d95"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gaf2c7b89c327d1f60f59e68b9ea644d95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3406e8b168bc74c8637b11571a6da83a"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#ga3406e8b168bc74c8637b11571a6da83a">mi_malloc</a> (size_t size)</td></tr> <tr class="memitem:ga3406e8b168bc74c8637b11571a6da83a"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#ga3406e8b168bc74c8637b11571a6da83a">mi_malloc</a> (size_t size)</td></tr>
<tr class="memdesc:ga3406e8b168bc74c8637b11571a6da83a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate <em>size</em> bytes. <a href="#ga3406e8b168bc74c8637b11571a6da83a">More...</a><br /></td></tr> <tr class="memdesc:ga3406e8b168bc74c8637b11571a6da83a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate <em>size</em> bytes. <a href="group__malloc.html#ga3406e8b168bc74c8637b11571a6da83a">More...</a><br /></td></tr>
<tr class="separator:ga3406e8b168bc74c8637b11571a6da83a"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga3406e8b168bc74c8637b11571a6da83a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafdd9d8bb2986e668ba9884f28af38000"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#gafdd9d8bb2986e668ba9884f28af38000">mi_zalloc</a> (size_t size)</td></tr> <tr class="memitem:gafdd9d8bb2986e668ba9884f28af38000"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#gafdd9d8bb2986e668ba9884f28af38000">mi_zalloc</a> (size_t size)</td></tr>
<tr class="memdesc:gafdd9d8bb2986e668ba9884f28af38000"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate zero-initialized <code>size</code> bytes. <a href="#gafdd9d8bb2986e668ba9884f28af38000">More...</a><br /></td></tr> <tr class="memdesc:gafdd9d8bb2986e668ba9884f28af38000"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate zero-initialized <code>size</code> bytes. <a href="group__malloc.html#gafdd9d8bb2986e668ba9884f28af38000">More...</a><br /></td></tr>
<tr class="separator:gafdd9d8bb2986e668ba9884f28af38000"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gafdd9d8bb2986e668ba9884f28af38000"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga97fedb4f7107c592fd7f0f0a8949a57d"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#ga97fedb4f7107c592fd7f0f0a8949a57d">mi_calloc</a> (size_t count, size_t size)</td></tr> <tr class="memitem:ga97fedb4f7107c592fd7f0f0a8949a57d"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#ga97fedb4f7107c592fd7f0f0a8949a57d">mi_calloc</a> (size_t count, size_t size)</td></tr>
<tr class="memdesc:ga97fedb4f7107c592fd7f0f0a8949a57d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate zero-initialized <em>count</em> elements of <em>size</em> bytes. <a href="#ga97fedb4f7107c592fd7f0f0a8949a57d">More...</a><br /></td></tr> <tr class="memdesc:ga97fedb4f7107c592fd7f0f0a8949a57d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate zero-initialized <em>count</em> elements of <em>size</em> bytes. <a href="group__malloc.html#ga97fedb4f7107c592fd7f0f0a8949a57d">More...</a><br /></td></tr>
<tr class="separator:ga97fedb4f7107c592fd7f0f0a8949a57d"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga97fedb4f7107c592fd7f0f0a8949a57d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf11eb497da57bdfb2de65eb191c69db6"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#gaf11eb497da57bdfb2de65eb191c69db6">mi_realloc</a> (void *p, size_t newsize)</td></tr> <tr class="memitem:gaf11eb497da57bdfb2de65eb191c69db6"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#gaf11eb497da57bdfb2de65eb191c69db6">mi_realloc</a> (void *p, size_t newsize)</td></tr>
<tr class="memdesc:gaf11eb497da57bdfb2de65eb191c69db6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Re-allocate memory to <em>newsize</em> bytes. <a href="#gaf11eb497da57bdfb2de65eb191c69db6">More...</a><br /></td></tr> <tr class="memdesc:gaf11eb497da57bdfb2de65eb191c69db6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Re-allocate memory to <em>newsize</em> bytes. <a href="group__malloc.html#gaf11eb497da57bdfb2de65eb191c69db6">More...</a><br /></td></tr>
<tr class="separator:gaf11eb497da57bdfb2de65eb191c69db6"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gaf11eb497da57bdfb2de65eb191c69db6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga23a0fbb452b5dce8e31fab1a1958cacc"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#ga23a0fbb452b5dce8e31fab1a1958cacc">mi_recalloc</a> (void *p, size_t count, size_t size)</td></tr> <tr class="memitem:ga23a0fbb452b5dce8e31fab1a1958cacc"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#ga23a0fbb452b5dce8e31fab1a1958cacc">mi_recalloc</a> (void *p, size_t count, size_t size)</td></tr>
<tr class="memdesc:ga23a0fbb452b5dce8e31fab1a1958cacc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Re-allocate memory to <em>count</em> elements of <em>size</em> bytes, with extra memory initialized to zero. <a href="#ga23a0fbb452b5dce8e31fab1a1958cacc">More...</a><br /></td></tr> <tr class="memdesc:ga23a0fbb452b5dce8e31fab1a1958cacc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Re-allocate memory to <em>count</em> elements of <em>size</em> bytes, with extra memory initialized to zero. <a href="group__malloc.html#ga23a0fbb452b5dce8e31fab1a1958cacc">More...</a><br /></td></tr>
<tr class="separator:ga23a0fbb452b5dce8e31fab1a1958cacc"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga23a0fbb452b5dce8e31fab1a1958cacc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaee66a1d483c3e28f585525fb96707e4"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#gaaee66a1d483c3e28f585525fb96707e4">mi_expand</a> (void *p, size_t newsize)</td></tr> <tr class="memitem:gaaee66a1d483c3e28f585525fb96707e4"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#gaaee66a1d483c3e28f585525fb96707e4">mi_expand</a> (void *p, size_t newsize)</td></tr>
<tr class="memdesc:gaaee66a1d483c3e28f585525fb96707e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to re-allocate memory to <em>newsize</em> bytes <em>in place</em>. <a href="#gaaee66a1d483c3e28f585525fb96707e4">More...</a><br /></td></tr> <tr class="memdesc:gaaee66a1d483c3e28f585525fb96707e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to re-allocate memory to <em>newsize</em> bytes <em>in place</em>. <a href="group__malloc.html#gaaee66a1d483c3e28f585525fb96707e4">More...</a><br /></td></tr>
<tr class="separator:gaaee66a1d483c3e28f585525fb96707e4"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gaaee66a1d483c3e28f585525fb96707e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0b05e2bf0f73e7401ae08597ff782ac6"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#ga0b05e2bf0f73e7401ae08597ff782ac6">mi_mallocn</a> (size_t count, size_t size)</td></tr> <tr class="memitem:ga0b05e2bf0f73e7401ae08597ff782ac6"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#ga0b05e2bf0f73e7401ae08597ff782ac6">mi_mallocn</a> (size_t count, size_t size)</td></tr>
<tr class="memdesc:ga0b05e2bf0f73e7401ae08597ff782ac6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate <em>count</em> elements of <em>size</em> bytes. <a href="#ga0b05e2bf0f73e7401ae08597ff782ac6">More...</a><br /></td></tr> <tr class="memdesc:ga0b05e2bf0f73e7401ae08597ff782ac6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate <em>count</em> elements of <em>size</em> bytes. <a href="group__malloc.html#ga0b05e2bf0f73e7401ae08597ff782ac6">More...</a><br /></td></tr>
<tr class="separator:ga0b05e2bf0f73e7401ae08597ff782ac6"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga0b05e2bf0f73e7401ae08597ff782ac6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga61d57b4144ba24fba5c1e9b956d13853"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#ga61d57b4144ba24fba5c1e9b956d13853">mi_reallocn</a> (void *p, size_t count, size_t size)</td></tr> <tr class="memitem:ga61d57b4144ba24fba5c1e9b956d13853"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#ga61d57b4144ba24fba5c1e9b956d13853">mi_reallocn</a> (void *p, size_t count, size_t size)</td></tr>
<tr class="memdesc:ga61d57b4144ba24fba5c1e9b956d13853"><td class="mdescLeft">&#160;</td><td class="mdescRight">Re-allocate memory to <em>count</em> elements of <em>size</em> bytes. <a href="#ga61d57b4144ba24fba5c1e9b956d13853">More...</a><br /></td></tr> <tr class="memdesc:ga61d57b4144ba24fba5c1e9b956d13853"><td class="mdescLeft">&#160;</td><td class="mdescRight">Re-allocate memory to <em>count</em> elements of <em>size</em> bytes. <a href="group__malloc.html#ga61d57b4144ba24fba5c1e9b956d13853">More...</a><br /></td></tr>
<tr class="separator:ga61d57b4144ba24fba5c1e9b956d13853"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga61d57b4144ba24fba5c1e9b956d13853"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafe68ac7c5e24a65cd55c9d6b152211a0"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#gafe68ac7c5e24a65cd55c9d6b152211a0">mi_reallocf</a> (void *p, size_t newsize)</td></tr> <tr class="memitem:gafe68ac7c5e24a65cd55c9d6b152211a0"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#gafe68ac7c5e24a65cd55c9d6b152211a0">mi_reallocf</a> (void *p, size_t newsize)</td></tr>
<tr class="memdesc:gafe68ac7c5e24a65cd55c9d6b152211a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Re-allocate memory to <em>newsize</em> bytes,. <a href="#gafe68ac7c5e24a65cd55c9d6b152211a0">More...</a><br /></td></tr> <tr class="memdesc:gafe68ac7c5e24a65cd55c9d6b152211a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Re-allocate memory to <em>newsize</em> bytes,. <a href="group__malloc.html#gafe68ac7c5e24a65cd55c9d6b152211a0">More...</a><br /></td></tr>
<tr class="separator:gafe68ac7c5e24a65cd55c9d6b152211a0"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gafe68ac7c5e24a65cd55c9d6b152211a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac7cffe13f1f458ed16789488bf92b9b2"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#gac7cffe13f1f458ed16789488bf92b9b2">mi_strdup</a> (const char *s)</td></tr> <tr class="memitem:gac7cffe13f1f458ed16789488bf92b9b2"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#gac7cffe13f1f458ed16789488bf92b9b2">mi_strdup</a> (const char *s)</td></tr>
<tr class="memdesc:gac7cffe13f1f458ed16789488bf92b9b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate and duplicate a string. <a href="#gac7cffe13f1f458ed16789488bf92b9b2">More...</a><br /></td></tr> <tr class="memdesc:gac7cffe13f1f458ed16789488bf92b9b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate and duplicate a string. <a href="group__malloc.html#gac7cffe13f1f458ed16789488bf92b9b2">More...</a><br /></td></tr>
<tr class="separator:gac7cffe13f1f458ed16789488bf92b9b2"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gac7cffe13f1f458ed16789488bf92b9b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaabf971c2571891433477e2d21a35266"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#gaaabf971c2571891433477e2d21a35266">mi_strndup</a> (const char *s, size_t n)</td></tr> <tr class="memitem:gaaabf971c2571891433477e2d21a35266"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#gaaabf971c2571891433477e2d21a35266">mi_strndup</a> (const char *s, size_t n)</td></tr>
<tr class="memdesc:gaaabf971c2571891433477e2d21a35266"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate and duplicate a string up to <em>n</em> bytes. <a href="#gaaabf971c2571891433477e2d21a35266">More...</a><br /></td></tr> <tr class="memdesc:gaaabf971c2571891433477e2d21a35266"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate and duplicate a string up to <em>n</em> bytes. <a href="group__malloc.html#gaaabf971c2571891433477e2d21a35266">More...</a><br /></td></tr>
<tr class="separator:gaaabf971c2571891433477e2d21a35266"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gaaabf971c2571891433477e2d21a35266"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga08cec32dd5bbe7da91c78d19f1b5bebe"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#ga08cec32dd5bbe7da91c78d19f1b5bebe">mi_realpath</a> (const char *fname, char *resolved_name)</td></tr> <tr class="memitem:ga08cec32dd5bbe7da91c78d19f1b5bebe"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__malloc.html#ga08cec32dd5bbe7da91c78d19f1b5bebe">mi_realpath</a> (const char *fname, char *resolved_name)</td></tr>
<tr class="memdesc:ga08cec32dd5bbe7da91c78d19f1b5bebe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resolve a file path name. <a href="#ga08cec32dd5bbe7da91c78d19f1b5bebe">More...</a><br /></td></tr> <tr class="memdesc:ga08cec32dd5bbe7da91c78d19f1b5bebe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resolve a file path name. <a href="group__malloc.html#ga08cec32dd5bbe7da91c78d19f1b5bebe">More...</a><br /></td></tr>
<tr class="separator:ga08cec32dd5bbe7da91c78d19f1b5bebe"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga08cec32dd5bbe7da91c78d19f1b5bebe"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table> </table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@ -635,9 +631,7 @@ mi_zallocn() </dd></dl>
<!-- start footer part --> <!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul> <ul>
<li class="footer">Generated by <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul> </ul>
</div> </div>
</body> </body>

View File

@ -3,7 +3,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mi-malloc: Runtime Options</title> <title>mi-malloc: Runtime Options</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -13,10 +13,6 @@
<script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script> <script type="text/javascript" src="search/search.js"></script>
@ -37,21 +33,21 @@
<td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td> <td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mi-malloc <div id="projectname">mi-malloc
&#160;<span id="projectnumber">1.6</span> &#160;<span id="projectnumber">1.7/2.0</span>
</div> </div>
</td> </td>
<td> <div id="MSearchBox" class="MSearchBoxInactive"> <td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left"> <span class="left">
<img id="MSearchSelect" src="search/mag_sel.png" <img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()" onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()" onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/> alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S" <input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)" onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)" onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/> onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right"> </span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span> </span>
</div> </div>
</td> </td>
@ -60,10 +56,10 @@
</table> </table>
</div> </div>
<!-- end header part --> <!-- end header part -->
<!-- Generated by Doxygen 1.8.15 --> <!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search'); var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */ /* @license-end */
</script> </script>
</div><!-- top --> </div><!-- top -->
@ -73,13 +69,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-sync" class="sync"></div> <div id="nav-sync" class="sync"></div>
</div> </div>
</div> </div>
<div id="splitbar" style="-moz-user-select:none;" <div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle"> class="ui-resizable-handle">
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group__options.html','');}); $(document).ready(function(){initNavTree('group__options.html',''); initResizable(); });
/* @license-end */ /* @license-end */
</script> </script>
<div id="doc-content"> <div id="doc-content">
@ -92,7 +88,7 @@ $(document).ready(function(){initNavTree('group__options.html','');});
<!-- iframe showing the search results (closed by default) --> <!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow"> <div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" <iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults"> name="MSearchResults" id="MSearchResults">
</iframe> </iframe>
</div> </div>
@ -106,31 +102,33 @@ $(document).ready(function(){initNavTree('group__options.html','');});
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<p>Set runtime behavior. <p>Set runtime behavior.
<a href="#details">More...</a></p> <a href="#details">More...</a></p>
<table class="memberdecls"> <table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr> Enumerations</h2></td></tr>
<tr class="memitem:gafebf7ed116adb38ae5218bc3ce06884c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__options.html#gafebf7ed116adb38ae5218bc3ce06884c">mi_option_t</a> { <br /> <tr class="memitem:gafebf7ed116adb38ae5218bc3ce06884c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__options.html#gafebf7ed116adb38ae5218bc3ce06884c">mi_option_t</a> { <br />
&#160;&#160;<a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cafbf4822e5c00732c5984b32a032837f0">mi_option_show_errors</a>, &#160;&#160;<a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cafbf4822e5c00732c5984b32a032837f0">mi_option_show_errors</a>
<a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca0957ef73b2550764b4840edf48422fda">mi_option_show_stats</a>, , <a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca0957ef73b2550764b4840edf48422fda">mi_option_show_stats</a>
<a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca7c8b7bf5281c581bad64f5daa6442777">mi_option_verbose</a>, , <a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca7c8b7bf5281c581bad64f5daa6442777">mi_option_verbose</a>
<a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca1e8de72c93da7ff22d91e1e27b52ac2b">mi_option_eager_commit</a>, , <a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca1e8de72c93da7ff22d91e1e27b52ac2b">mi_option_eager_commit</a>
<br /> , <br />
&#160;&#160;<a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca32ce97ece29f69e82579679cf8a307ad">mi_option_eager_region_commit</a>, &#160;&#160;<a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca32ce97ece29f69e82579679cf8a307ad">mi_option_eager_region_commit</a>
<a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca4192d491200d0055df0554d4cf65054e">mi_option_large_os_pages</a>, , <a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca4192d491200d0055df0554d4cf65054e">mi_option_large_os_pages</a>
<a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884caca7ed041be3b0b9d0b82432c7bf41af2">mi_option_reserve_huge_os_pages</a>, , <a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884caca7ed041be3b0b9d0b82432c7bf41af2">mi_option_reserve_huge_os_pages</a>
<a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca2ecbe7ef32f5c84de3739aa4f0b805a1">mi_option_segment_cache</a>, , <a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884caa13e7926d4339d2aa6fbf61d4473fd5c">mi_option_reserve_huge_os_pages_at</a>
<br /> , <br />
&#160;&#160;<a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cada854dd272c66342f18a93ee254a2968">mi_option_page_reset</a>, &#160;&#160;<a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca2ecbe7ef32f5c84de3739aa4f0b805a1">mi_option_segment_cache</a>
<a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cafb121d30d87591850d5410ccc3a95c6d">mi_option_segment_reset</a>, , <a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cada854dd272c66342f18a93ee254a2968">mi_option_page_reset</a>
<a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca154fe170131d5212cff57e22b99523c5">mi_option_reset_delay</a>, , <a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cafb121d30d87591850d5410ccc3a95c6d">mi_option_segment_reset</a>
<a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca0ac33a18f6b659fcfaf44efb0bab1b74">mi_option_use_numa_nodes</a>, , <a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca154fe170131d5212cff57e22b99523c5">mi_option_reset_delay</a>
<br /> , <br />
&#160;&#160;<a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cac81ee965b130fa81238913a3c239d536">mi_option_reset_decommits</a>, &#160;&#160;<a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca0ac33a18f6b659fcfaf44efb0bab1b74">mi_option_use_numa_nodes</a>
<a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca17a190c25be381142d87e0468c4c068c">mi_option_eager_commit_delay</a>, , <a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cac81ee965b130fa81238913a3c239d536">mi_option_reset_decommits</a>
<a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca4b74ae2a69e445de6c2361b73c1d14bf">mi_option_os_tag</a>, , <a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca17a190c25be381142d87e0468c4c068c">mi_option_eager_commit_delay</a>
<a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca5b4357b74be0d87568036c32eb1a2e4a">_mi_option_last</a> , <a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca4b74ae2a69e445de6c2361b73c1d14bf">mi_option_os_tag</a>
, <br />
&#160;&#160;<a class="el" href="group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca5b4357b74be0d87568036c32eb1a2e4a">_mi_option_last</a>
<br /> <br />
}</td></tr> }</td></tr>
<tr class="memdesc:gafebf7ed116adb38ae5218bc3ce06884c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runtime options. <a href="group__options.html#gafebf7ed116adb38ae5218bc3ce06884c">More...</a><br /></td></tr> <tr class="memdesc:gafebf7ed116adb38ae5218bc3ce06884c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runtime options. <a href="group__options.html#gafebf7ed116adb38ae5218bc3ce06884c">More...</a><br /></td></tr>
@ -186,6 +184,8 @@ Functions</h2></td></tr>
</td></tr> </td></tr>
<tr><td class="fieldname"><a id="ggafebf7ed116adb38ae5218bc3ce06884caca7ed041be3b0b9d0b82432c7bf41af2"></a>mi_option_reserve_huge_os_pages&#160;</td><td class="fielddoc"><p>The number of huge OS pages (1GiB in size) to reserve at the start of the program. </p> <tr><td class="fieldname"><a id="ggafebf7ed116adb38ae5218bc3ce06884caca7ed041be3b0b9d0b82432c7bf41af2"></a>mi_option_reserve_huge_os_pages&#160;</td><td class="fielddoc"><p>The number of huge OS pages (1GiB in size) to reserve at the start of the program. </p>
</td></tr> </td></tr>
<tr><td class="fieldname"><a id="ggafebf7ed116adb38ae5218bc3ce06884caa13e7926d4339d2aa6fbf61d4473fd5c"></a>mi_option_reserve_huge_os_pages_at&#160;</td><td class="fielddoc"><p>Reserve huge OS pages at node N. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggafebf7ed116adb38ae5218bc3ce06884ca2ecbe7ef32f5c84de3739aa4f0b805a1"></a>mi_option_segment_cache&#160;</td><td class="fielddoc"><p>The number of segments per thread to keep cached. </p> <tr><td class="fieldname"><a id="ggafebf7ed116adb38ae5218bc3ce06884ca2ecbe7ef32f5c84de3739aa4f0b805a1"></a>mi_option_segment_cache&#160;</td><td class="fielddoc"><p>The number of segments per thread to keep cached. </p>
</td></tr> </td></tr>
<tr><td class="fieldname"><a id="ggafebf7ed116adb38ae5218bc3ce06884cada854dd272c66342f18a93ee254a2968"></a>mi_option_page_reset&#160;</td><td class="fielddoc"><p>Reset page memory after <em>mi_option_reset_delay</em> milliseconds when it becomes free. </p> <tr><td class="fieldname"><a id="ggafebf7ed116adb38ae5218bc3ce06884cada854dd272c66342f18a93ee254a2968"></a>mi_option_page_reset&#160;</td><td class="fielddoc"><p>Reset page memory after <em>mi_option_reset_delay</em> milliseconds when it becomes free. </p>
@ -397,9 +397,7 @@ Functions</h2></td></tr>
<!-- start footer part --> <!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul> <ul>
<li class="footer">Generated by <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul> </ul>
</div> </div>
</body> </body>

View File

@ -8,6 +8,7 @@ var group__options =
[ "mi_option_eager_region_commit", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca32ce97ece29f69e82579679cf8a307ad", null ], [ "mi_option_eager_region_commit", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca32ce97ece29f69e82579679cf8a307ad", null ],
[ "mi_option_large_os_pages", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca4192d491200d0055df0554d4cf65054e", null ], [ "mi_option_large_os_pages", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca4192d491200d0055df0554d4cf65054e", null ],
[ "mi_option_reserve_huge_os_pages", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884caca7ed041be3b0b9d0b82432c7bf41af2", null ], [ "mi_option_reserve_huge_os_pages", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884caca7ed041be3b0b9d0b82432c7bf41af2", null ],
[ "mi_option_reserve_huge_os_pages_at", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884caa13e7926d4339d2aa6fbf61d4473fd5c", null ],
[ "mi_option_segment_cache", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca2ecbe7ef32f5c84de3739aa4f0b805a1", null ], [ "mi_option_segment_cache", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca2ecbe7ef32f5c84de3739aa4f0b805a1", null ],
[ "mi_option_page_reset", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cada854dd272c66342f18a93ee254a2968", null ], [ "mi_option_page_reset", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cada854dd272c66342f18a93ee254a2968", null ],
[ "mi_option_segment_reset", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cafb121d30d87591850d5410ccc3a95c6d", null ], [ "mi_option_segment_reset", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cafb121d30d87591850d5410ccc3a95c6d", null ],

View File

@ -3,7 +3,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mi-malloc: Posix</title> <title>mi-malloc: Posix</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -13,10 +13,6 @@
<script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script> <script type="text/javascript" src="search/search.js"></script>
@ -37,21 +33,21 @@
<td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td> <td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mi-malloc <div id="projectname">mi-malloc
&#160;<span id="projectnumber">1.6</span> &#160;<span id="projectnumber">1.7/2.0</span>
</div> </div>
</td> </td>
<td> <div id="MSearchBox" class="MSearchBoxInactive"> <td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left"> <span class="left">
<img id="MSearchSelect" src="search/mag_sel.png" <img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()" onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()" onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/> alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S" <input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)" onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)" onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/> onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right"> </span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span> </span>
</div> </div>
</td> </td>
@ -60,10 +56,10 @@
</table> </table>
</div> </div>
<!-- end header part --> <!-- end header part -->
<!-- Generated by Doxygen 1.8.15 --> <!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search'); var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */ /* @license-end */
</script> </script>
</div><!-- top --> </div><!-- top -->
@ -73,13 +69,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-sync" class="sync"></div> <div id="nav-sync" class="sync"></div>
</div> </div>
</div> </div>
<div id="splitbar" style="-moz-user-select:none;" <div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle"> class="ui-resizable-handle">
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group__posix.html','');}); $(document).ready(function(){initNavTree('group__posix.html',''); initResizable(); });
/* @license-end */ /* @license-end */
</script> </script>
<div id="doc-content"> <div id="doc-content">
@ -92,7 +88,7 @@ $(document).ready(function(){initNavTree('group__posix.html','');});
<!-- iframe showing the search results (closed by default) --> <!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow"> <div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" <iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults"> name="MSearchResults" id="MSearchResults">
</iframe> </iframe>
</div> </div>
@ -105,7 +101,7 @@ $(document).ready(function(){initNavTree('group__posix.html','');});
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<p><code>mi_</code> prefixed implementations of various Posix, Unix, and C++ allocation functions. <p><code>mi_</code> prefixed implementations of various Posix, Unix, and C++ allocation functions.
<a href="#details">More...</a></p> <a href="#details">More...</a></p>
<table class="memberdecls"> <table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
@ -115,7 +111,7 @@ Functions</h2></td></tr>
<tr class="memitem:ga06d07cf357bbac5c73ba5d0c0c421e17"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__posix.html#ga06d07cf357bbac5c73ba5d0c0c421e17">mi_malloc_usable_size</a> (const void *p)</td></tr> <tr class="memitem:ga06d07cf357bbac5c73ba5d0c0c421e17"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__posix.html#ga06d07cf357bbac5c73ba5d0c0c421e17">mi_malloc_usable_size</a> (const void *p)</td></tr>
<tr class="separator:ga06d07cf357bbac5c73ba5d0c0c421e17"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga06d07cf357bbac5c73ba5d0c0c421e17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga705dc7a64bffacfeeb0141501a5c35d7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__posix.html#ga705dc7a64bffacfeeb0141501a5c35d7">mi_cfree</a> (void *p)</td></tr> <tr class="memitem:ga705dc7a64bffacfeeb0141501a5c35d7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__posix.html#ga705dc7a64bffacfeeb0141501a5c35d7">mi_cfree</a> (void *p)</td></tr>
<tr class="memdesc:ga705dc7a64bffacfeeb0141501a5c35d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Just as <code>free</code> but also checks if the pointer <code>p</code> belongs to our heap. <a href="#ga705dc7a64bffacfeeb0141501a5c35d7">More...</a><br /></td></tr> <tr class="memdesc:ga705dc7a64bffacfeeb0141501a5c35d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Just as <code>free</code> but also checks if the pointer <code>p</code> belongs to our heap. <a href="group__posix.html#ga705dc7a64bffacfeeb0141501a5c35d7">More...</a><br /></td></tr>
<tr class="separator:ga705dc7a64bffacfeeb0141501a5c35d7"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga705dc7a64bffacfeeb0141501a5c35d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacff84f226ba9feb2031b8992e5579447"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__posix.html#gacff84f226ba9feb2031b8992e5579447">mi_posix_memalign</a> (void **p, size_t alignment, size_t size)</td></tr> <tr class="memitem:gacff84f226ba9feb2031b8992e5579447"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__posix.html#gacff84f226ba9feb2031b8992e5579447">mi_posix_memalign</a> (void **p, size_t alignment, size_t size)</td></tr>
<tr class="separator:gacff84f226ba9feb2031b8992e5579447"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gacff84f226ba9feb2031b8992e5579447"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -130,7 +126,11 @@ Functions</h2></td></tr>
<tr class="memitem:ga1326d2e4388630b5f81ca7206318b8e5"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__posix.html#ga1326d2e4388630b5f81ca7206318b8e5">mi_aligned_alloc</a> (size_t alignment, size_t size)</td></tr> <tr class="memitem:ga1326d2e4388630b5f81ca7206318b8e5"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__posix.html#ga1326d2e4388630b5f81ca7206318b8e5">mi_aligned_alloc</a> (size_t alignment, size_t size)</td></tr>
<tr class="separator:ga1326d2e4388630b5f81ca7206318b8e5"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga1326d2e4388630b5f81ca7206318b8e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga48fad8648a2f1dab9c87ea9448a52088"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__posix.html#ga48fad8648a2f1dab9c87ea9448a52088">mi_reallocarray</a> (void *p, size_t count, size_t size)</td></tr> <tr class="memitem:ga48fad8648a2f1dab9c87ea9448a52088"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__posix.html#ga48fad8648a2f1dab9c87ea9448a52088">mi_reallocarray</a> (void *p, size_t count, size_t size)</td></tr>
<tr class="memdesc:ga48fad8648a2f1dab9c87ea9448a52088"><td class="mdescLeft">&#160;</td><td class="mdescRight">Correspond s to <a href="https://www.freebsd.org/cgi/man.cgi?query=reallocarray&amp;sektion=3&amp;manpath=freebsd-release-ports">reallocarray</a> in FreeBSD. <a href="group__posix.html#ga48fad8648a2f1dab9c87ea9448a52088">More...</a><br /></td></tr>
<tr class="separator:ga48fad8648a2f1dab9c87ea9448a52088"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga48fad8648a2f1dab9c87ea9448a52088"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7e1934d60a3e697950eeb48e042bfad5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__posix.html#ga7e1934d60a3e697950eeb48e042bfad5">mi_reallocarr</a> (void *p, size_t count, size_t size)</td></tr>
<tr class="memdesc:ga7e1934d60a3e697950eeb48e042bfad5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Corresponds to <a href="https://man.netbsd.org/reallocarr.3">reallocarr</a> in NetBSD. <a href="group__posix.html#ga7e1934d60a3e697950eeb48e042bfad5">More...</a><br /></td></tr>
<tr class="separator:ga7e1934d60a3e697950eeb48e042bfad5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae01389eedab8d67341ff52e2aad80ebb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__posix.html#gae01389eedab8d67341ff52e2aad80ebb">mi_free_size</a> (void *p, size_t size)</td></tr> <tr class="memitem:gae01389eedab8d67341ff52e2aad80ebb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__posix.html#gae01389eedab8d67341ff52e2aad80ebb">mi_free_size</a> (void *p, size_t size)</td></tr>
<tr class="separator:gae01389eedab8d67341ff52e2aad80ebb"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gae01389eedab8d67341ff52e2aad80ebb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga72e9d7ffb5fe94d69bc722c8506e27bc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__posix.html#ga72e9d7ffb5fe94d69bc722c8506e27bc">mi_free_size_aligned</a> (void *p, size_t size, size_t alignment)</td></tr> <tr class="memitem:ga72e9d7ffb5fe94d69bc722c8506e27bc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__posix.html#ga72e9d7ffb5fe94d69bc722c8506e27bc">mi_free_size_aligned</a> (void *p, size_t size, size_t alignment)</td></tr>
@ -428,6 +428,42 @@ Functions</h2></td></tr>
</table> </table>
</div><div class="memdoc"> </div><div class="memdoc">
</div>
</div>
<a id="ga7e1934d60a3e697950eeb48e042bfad5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7e1934d60a3e697950eeb48e042bfad5">&#9670;&nbsp;</a></span>mi_reallocarr()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int mi_reallocarr </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Corresponds to <a href="https://man.netbsd.org/reallocarr.3">reallocarr</a> in NetBSD. </p>
</div> </div>
</div> </div>
<a id="ga48fad8648a2f1dab9c87ea9448a52088"></a> <a id="ga48fad8648a2f1dab9c87ea9448a52088"></a>
@ -462,6 +498,8 @@ Functions</h2></td></tr>
</table> </table>
</div><div class="memdoc"> </div><div class="memdoc">
<p>Correspond s to <a href="https://www.freebsd.org/cgi/man.cgi?query=reallocarray&amp;sektion=3&amp;manpath=freebsd-release-ports">reallocarray</a> in FreeBSD. </p>
</div> </div>
</div> </div>
<a id="ga73baaf5951f5165ba0763d0c06b6a93b"></a> <a id="ga73baaf5951f5165ba0763d0c06b6a93b"></a>
@ -487,9 +525,7 @@ Functions</h2></td></tr>
<!-- start footer part --> <!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul> <ul>
<li class="footer">Generated by <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul> </ul>
</div> </div>
</body> </body>

View File

@ -11,6 +11,7 @@ var group__posix =
[ "mi_memalign", "group__posix.html#gaab7fa71ea93b96873f5d9883db57d40e", null ], [ "mi_memalign", "group__posix.html#gaab7fa71ea93b96873f5d9883db57d40e", null ],
[ "mi_posix_memalign", "group__posix.html#gacff84f226ba9feb2031b8992e5579447", null ], [ "mi_posix_memalign", "group__posix.html#gacff84f226ba9feb2031b8992e5579447", null ],
[ "mi_pvalloc", "group__posix.html#gaeb325c39b887d3b90d85d1eb1712fb1e", null ], [ "mi_pvalloc", "group__posix.html#gaeb325c39b887d3b90d85d1eb1712fb1e", null ],
[ "mi_reallocarr", "group__posix.html#ga7e1934d60a3e697950eeb48e042bfad5", null ],
[ "mi_reallocarray", "group__posix.html#ga48fad8648a2f1dab9c87ea9448a52088", null ], [ "mi_reallocarray", "group__posix.html#ga48fad8648a2f1dab9c87ea9448a52088", null ],
[ "mi_valloc", "group__posix.html#ga73baaf5951f5165ba0763d0c06b6a93b", null ] [ "mi_valloc", "group__posix.html#ga73baaf5951f5165ba0763d0c06b6a93b", null ]
]; ];

View File

@ -3,7 +3,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mi-malloc: Typed Macros</title> <title>mi-malloc: Typed Macros</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -13,10 +13,6 @@
<script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script> <script type="text/javascript" src="search/search.js"></script>
@ -37,21 +33,21 @@
<td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td> <td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mi-malloc <div id="projectname">mi-malloc
&#160;<span id="projectnumber">1.6</span> &#160;<span id="projectnumber">1.7/2.0</span>
</div> </div>
</td> </td>
<td> <div id="MSearchBox" class="MSearchBoxInactive"> <td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left"> <span class="left">
<img id="MSearchSelect" src="search/mag_sel.png" <img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()" onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()" onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/> alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S" <input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)" onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)" onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/> onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right"> </span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span> </span>
</div> </div>
</td> </td>
@ -60,10 +56,10 @@
</table> </table>
</div> </div>
<!-- end header part --> <!-- end header part -->
<!-- Generated by Doxygen 1.8.15 --> <!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search'); var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */ /* @license-end */
</script> </script>
</div><!-- top --> </div><!-- top -->
@ -73,13 +69,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-sync" class="sync"></div> <div id="nav-sync" class="sync"></div>
</div> </div>
</div> </div>
<div id="splitbar" style="-moz-user-select:none;" <div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle"> class="ui-resizable-handle">
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group__typed.html','');}); $(document).ready(function(){initNavTree('group__typed.html',''); initResizable(); });
/* @license-end */ /* @license-end */
</script> </script>
<div id="doc-content"> <div id="doc-content">
@ -92,7 +88,7 @@ $(document).ready(function(){initNavTree('group__typed.html','');});
<!-- iframe showing the search results (closed by default) --> <!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow"> <div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" <iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults"> name="MSearchResults" id="MSearchResults">
</iframe> </iframe>
</div> </div>
@ -105,48 +101,50 @@ $(document).ready(function(){initNavTree('group__typed.html','');});
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<p>Typed allocation macros. <p>Typed allocation macros.
<a href="#details">More...</a></p> <a href="#details">More...</a></p>
<table class="memberdecls"> <table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr> Macros</h2></td></tr>
<tr class="memitem:ga0619a62c5fd886f1016030abe91f0557"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__typed.html#ga0619a62c5fd886f1016030abe91f0557">mi_malloc_tp</a>(tp)</td></tr> <tr class="memitem:ga0619a62c5fd886f1016030abe91f0557"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__typed.html#ga0619a62c5fd886f1016030abe91f0557">mi_malloc_tp</a>(tp)</td></tr>
<tr class="memdesc:ga0619a62c5fd886f1016030abe91f0557"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a block of type <em>tp</em>. <a href="#ga0619a62c5fd886f1016030abe91f0557">More...</a><br /></td></tr> <tr class="memdesc:ga0619a62c5fd886f1016030abe91f0557"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a block of type <em>tp</em>. <a href="group__typed.html#ga0619a62c5fd886f1016030abe91f0557">More...</a><br /></td></tr>
<tr class="separator:ga0619a62c5fd886f1016030abe91f0557"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga0619a62c5fd886f1016030abe91f0557"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac77a61bdaf680a803785fe307820b48c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__typed.html#gac77a61bdaf680a803785fe307820b48c">mi_zalloc_tp</a>(tp)</td></tr> <tr class="memitem:gac77a61bdaf680a803785fe307820b48c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__typed.html#gac77a61bdaf680a803785fe307820b48c">mi_zalloc_tp</a>(tp)</td></tr>
<tr class="memdesc:gac77a61bdaf680a803785fe307820b48c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a zero-initialized block of type <em>tp</em>. <a href="#gac77a61bdaf680a803785fe307820b48c">More...</a><br /></td></tr> <tr class="memdesc:gac77a61bdaf680a803785fe307820b48c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a zero-initialized block of type <em>tp</em>. <a href="group__typed.html#gac77a61bdaf680a803785fe307820b48c">More...</a><br /></td></tr>
<tr class="separator:gac77a61bdaf680a803785fe307820b48c"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gac77a61bdaf680a803785fe307820b48c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae80c47c9d4cab10961fff1a8ac98fc07"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__typed.html#gae80c47c9d4cab10961fff1a8ac98fc07">mi_calloc_tp</a>(tp, count)</td></tr> <tr class="memitem:gae80c47c9d4cab10961fff1a8ac98fc07"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__typed.html#gae80c47c9d4cab10961fff1a8ac98fc07">mi_calloc_tp</a>(tp, count)</td></tr>
<tr class="memdesc:gae80c47c9d4cab10961fff1a8ac98fc07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate <em>count</em> zero-initialized blocks of type <em>tp</em>. <a href="#gae80c47c9d4cab10961fff1a8ac98fc07">More...</a><br /></td></tr> <tr class="memdesc:gae80c47c9d4cab10961fff1a8ac98fc07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate <em>count</em> zero-initialized blocks of type <em>tp</em>. <a href="group__typed.html#gae80c47c9d4cab10961fff1a8ac98fc07">More...</a><br /></td></tr>
<tr class="separator:gae80c47c9d4cab10961fff1a8ac98fc07"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gae80c47c9d4cab10961fff1a8ac98fc07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae5cb6e0fafc9f23169c5622e077afe8b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__typed.html#gae5cb6e0fafc9f23169c5622e077afe8b">mi_mallocn_tp</a>(tp, count)</td></tr> <tr class="memitem:gae5cb6e0fafc9f23169c5622e077afe8b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__typed.html#gae5cb6e0fafc9f23169c5622e077afe8b">mi_mallocn_tp</a>(tp, count)</td></tr>
<tr class="memdesc:gae5cb6e0fafc9f23169c5622e077afe8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate <em>count</em> blocks of type <em>tp</em>. <a href="#gae5cb6e0fafc9f23169c5622e077afe8b">More...</a><br /></td></tr> <tr class="memdesc:gae5cb6e0fafc9f23169c5622e077afe8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate <em>count</em> blocks of type <em>tp</em>. <a href="group__typed.html#gae5cb6e0fafc9f23169c5622e077afe8b">More...</a><br /></td></tr>
<tr class="separator:gae5cb6e0fafc9f23169c5622e077afe8b"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gae5cb6e0fafc9f23169c5622e077afe8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1158b49a55dfa81f58a4426a7578f523"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__typed.html#ga1158b49a55dfa81f58a4426a7578f523">mi_reallocn_tp</a>(p, tp, count)</td></tr> <tr class="memitem:ga1158b49a55dfa81f58a4426a7578f523"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__typed.html#ga1158b49a55dfa81f58a4426a7578f523">mi_reallocn_tp</a>(p, tp, count)</td></tr>
<tr class="memdesc:ga1158b49a55dfa81f58a4426a7578f523"><td class="mdescLeft">&#160;</td><td class="mdescRight">Re-allocate to <em>count</em> blocks of type <em>tp</em>. <a href="#ga1158b49a55dfa81f58a4426a7578f523">More...</a><br /></td></tr> <tr class="memdesc:ga1158b49a55dfa81f58a4426a7578f523"><td class="mdescLeft">&#160;</td><td class="mdescRight">Re-allocate to <em>count</em> blocks of type <em>tp</em>. <a href="group__typed.html#ga1158b49a55dfa81f58a4426a7578f523">More...</a><br /></td></tr>
<tr class="separator:ga1158b49a55dfa81f58a4426a7578f523"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga1158b49a55dfa81f58a4426a7578f523"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga653bcb24ac495bc19940ecd6898f9cd7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__typed.html#ga653bcb24ac495bc19940ecd6898f9cd7">mi_heap_malloc_tp</a>(hp, tp)</td></tr> <tr class="memitem:ga653bcb24ac495bc19940ecd6898f9cd7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__typed.html#ga653bcb24ac495bc19940ecd6898f9cd7">mi_heap_malloc_tp</a>(hp, tp)</td></tr>
<tr class="memdesc:ga653bcb24ac495bc19940ecd6898f9cd7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a block of type <em>tp</em> in a heap <em>hp</em>. <a href="#ga653bcb24ac495bc19940ecd6898f9cd7">More...</a><br /></td></tr> <tr class="memdesc:ga653bcb24ac495bc19940ecd6898f9cd7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a block of type <em>tp</em> in a heap <em>hp</em>. <a href="group__typed.html#ga653bcb24ac495bc19940ecd6898f9cd7">More...</a><br /></td></tr>
<tr class="separator:ga653bcb24ac495bc19940ecd6898f9cd7"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga653bcb24ac495bc19940ecd6898f9cd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad6e87e86e994aa14416ae9b5d4c188fe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__typed.html#gad6e87e86e994aa14416ae9b5d4c188fe">mi_heap_zalloc_tp</a>(hp, tp)</td></tr> <tr class="memitem:gad6e87e86e994aa14416ae9b5d4c188fe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__typed.html#gad6e87e86e994aa14416ae9b5d4c188fe">mi_heap_zalloc_tp</a>(hp, tp)</td></tr>
<tr class="memdesc:gad6e87e86e994aa14416ae9b5d4c188fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a zero-initialized block of type <em>tp</em> in a heap <em>hp</em>. <a href="#gad6e87e86e994aa14416ae9b5d4c188fe">More...</a><br /></td></tr> <tr class="memdesc:gad6e87e86e994aa14416ae9b5d4c188fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a zero-initialized block of type <em>tp</em> in a heap <em>hp</em>. <a href="group__typed.html#gad6e87e86e994aa14416ae9b5d4c188fe">More...</a><br /></td></tr>
<tr class="separator:gad6e87e86e994aa14416ae9b5d4c188fe"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gad6e87e86e994aa14416ae9b5d4c188fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4e5d1f1707c90e5f55e023ac5f45fe74"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__typed.html#ga4e5d1f1707c90e5f55e023ac5f45fe74">mi_heap_calloc_tp</a>(hp, tp, count)</td></tr> <tr class="memitem:ga4e5d1f1707c90e5f55e023ac5f45fe74"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__typed.html#ga4e5d1f1707c90e5f55e023ac5f45fe74">mi_heap_calloc_tp</a>(hp, tp, count)</td></tr>
<tr class="memdesc:ga4e5d1f1707c90e5f55e023ac5f45fe74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate <em>count</em> zero-initialized blocks of type <em>tp</em> in a heap <em>hp</em>. <a href="#ga4e5d1f1707c90e5f55e023ac5f45fe74">More...</a><br /></td></tr> <tr class="memdesc:ga4e5d1f1707c90e5f55e023ac5f45fe74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate <em>count</em> zero-initialized blocks of type <em>tp</em> in a heap <em>hp</em>. <a href="group__typed.html#ga4e5d1f1707c90e5f55e023ac5f45fe74">More...</a><br /></td></tr>
<tr class="separator:ga4e5d1f1707c90e5f55e023ac5f45fe74"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga4e5d1f1707c90e5f55e023ac5f45fe74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6b75cb9c4b9c647661d0924552dc6e83"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__typed.html#ga6b75cb9c4b9c647661d0924552dc6e83">mi_heap_mallocn_tp</a>(hp, tp, count)</td></tr> <tr class="memitem:ga6b75cb9c4b9c647661d0924552dc6e83"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__typed.html#ga6b75cb9c4b9c647661d0924552dc6e83">mi_heap_mallocn_tp</a>(hp, tp, count)</td></tr>
<tr class="memdesc:ga6b75cb9c4b9c647661d0924552dc6e83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate <em>count</em> blocks of type <em>tp</em> in a heap <em>hp</em>. <a href="#ga6b75cb9c4b9c647661d0924552dc6e83">More...</a><br /></td></tr> <tr class="memdesc:ga6b75cb9c4b9c647661d0924552dc6e83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate <em>count</em> blocks of type <em>tp</em> in a heap <em>hp</em>. <a href="group__typed.html#ga6b75cb9c4b9c647661d0924552dc6e83">More...</a><br /></td></tr>
<tr class="separator:ga6b75cb9c4b9c647661d0924552dc6e83"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga6b75cb9c4b9c647661d0924552dc6e83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf213d5422ec35e7f6caad827c79bc948"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__typed.html#gaf213d5422ec35e7f6caad827c79bc948">mi_heap_reallocn_tp</a>(hp, p, tp, count)</td></tr> <tr class="memitem:gaf213d5422ec35e7f6caad827c79bc948"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__typed.html#gaf213d5422ec35e7f6caad827c79bc948">mi_heap_reallocn_tp</a>(hp, p, tp, count)</td></tr>
<tr class="memdesc:gaf213d5422ec35e7f6caad827c79bc948"><td class="mdescLeft">&#160;</td><td class="mdescRight">Re-allocate to <em>count</em> blocks of type <em>tp</em> in a heap <em>hp</em>. <a href="#gaf213d5422ec35e7f6caad827c79bc948">More...</a><br /></td></tr> <tr class="memdesc:gaf213d5422ec35e7f6caad827c79bc948"><td class="mdescLeft">&#160;</td><td class="mdescRight">Re-allocate to <em>count</em> blocks of type <em>tp</em> in a heap <em>hp</em>. <a href="group__typed.html#gaf213d5422ec35e7f6caad827c79bc948">More...</a><br /></td></tr>
<tr class="separator:gaf213d5422ec35e7f6caad827c79bc948"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:gaf213d5422ec35e7f6caad827c79bc948"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3e50a1600958fcaf1a7f3560c9174f9e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__typed.html#ga3e50a1600958fcaf1a7f3560c9174f9e">mi_heap_recalloc_tp</a>(hp, p, tp, count)</td></tr> <tr class="memitem:ga3e50a1600958fcaf1a7f3560c9174f9e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__typed.html#ga3e50a1600958fcaf1a7f3560c9174f9e">mi_heap_recalloc_tp</a>(hp, p, tp, count)</td></tr>
<tr class="memdesc:ga3e50a1600958fcaf1a7f3560c9174f9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Re-allocate to <em>count</em> zero initialized blocks of type <em>tp</em> in a heap <em>hp</em>. <a href="#ga3e50a1600958fcaf1a7f3560c9174f9e">More...</a><br /></td></tr> <tr class="memdesc:ga3e50a1600958fcaf1a7f3560c9174f9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Re-allocate to <em>count</em> zero initialized blocks of type <em>tp</em> in a heap <em>hp</em>. <a href="group__typed.html#ga3e50a1600958fcaf1a7f3560c9174f9e">More...</a><br /></td></tr>
<tr class="separator:ga3e50a1600958fcaf1a7f3560c9174f9e"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ga3e50a1600958fcaf1a7f3560c9174f9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table> </table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Typed allocation macros. </p> <p>Typed allocation macros. </p>
<p>For example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span>* p = <a class="code" href="group__typed.html#ga0619a62c5fd886f1016030abe91f0557">mi_malloc_tp</a>(<span class="keywordtype">int</span>)</div></div><!-- fragment --> <h2 class="groupheader">Macro Definition Documentation</h2> <p>For example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span>* p = <a class="code" href="group__typed.html#ga0619a62c5fd886f1016030abe91f0557">mi_malloc_tp</a>(<span class="keywordtype">int</span>)</div>
<div class="ttc" id="agroup__typed_html_ga0619a62c5fd886f1016030abe91f0557"><div class="ttname"><a href="group__typed.html#ga0619a62c5fd886f1016030abe91f0557">mi_malloc_tp</a></div><div class="ttdeci">#define mi_malloc_tp(tp)</div><div class="ttdoc">Allocate a block of type tp.</div><div class="ttdef"><b>Definition:</b> mimalloc-doc.h:692</div></div>
</div><!-- fragment --> <h2 class="groupheader">Macro Definition Documentation</h2>
<a id="gae80c47c9d4cab10961fff1a8ac98fc07"></a> <a id="gae80c47c9d4cab10961fff1a8ac98fc07"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae80c47c9d4cab10961fff1a8ac98fc07">&#9670;&nbsp;</a></span>mi_calloc_tp</h2> <h2 class="memtitle"><span class="permalink"><a href="#gae80c47c9d4cab10961fff1a8ac98fc07">&#9670;&nbsp;</a></span>mi_calloc_tp</h2>
@ -417,7 +415,8 @@ Macros</h2></td></tr>
</dd> </dd>
</dl> </dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to an object of type <em>tp</em>, or <em>NULL</em> if out of memory.</dd></dl> <dl class="section return"><dt>Returns</dt><dd>A pointer to an object of type <em>tp</em>, or <em>NULL</em> if out of memory.</dd></dl>
<p><b>Example:</b> </p><div class="fragment"><div class="line"><span class="keywordtype">int</span>* p = <a class="code" href="group__typed.html#ga0619a62c5fd886f1016030abe91f0557">mi_malloc_tp</a>(<span class="keywordtype">int</span>)</div></div><!-- fragment --><dl class="section see"><dt>See also</dt><dd><a class="el" href="group__malloc.html#ga3406e8b168bc74c8637b11571a6da83a" title="Allocate size bytes.">mi_malloc()</a> </dd></dl> <p><b>Example:</b> </p><div class="fragment"><div class="line"><span class="keywordtype">int</span>* p = <a class="code" href="group__typed.html#ga0619a62c5fd886f1016030abe91f0557">mi_malloc_tp</a>(<span class="keywordtype">int</span>)</div>
</div><!-- fragment --><dl class="section see"><dt>See also</dt><dd><a class="el" href="group__malloc.html#ga3406e8b168bc74c8637b11571a6da83a" title="Allocate size bytes.">mi_malloc()</a> </dd></dl>
</div> </div>
</div> </div>
@ -512,9 +511,7 @@ Macros</h2></td></tr>
<!-- start footer part --> <!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul> <ul>
<li class="footer">Generated by <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul> </ul>
</div> </div>
</body> </body>

View File

@ -3,7 +3,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mi-malloc: Zero initialized re-allocation</title> <title>mi-malloc: Zero initialized re-allocation</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -13,10 +13,6 @@
<script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script> <script type="text/javascript" src="search/search.js"></script>
@ -37,21 +33,21 @@
<td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td> <td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mi-malloc <div id="projectname">mi-malloc
&#160;<span id="projectnumber">1.6</span> &#160;<span id="projectnumber">1.7/2.0</span>
</div> </div>
</td> </td>
<td> <div id="MSearchBox" class="MSearchBoxInactive"> <td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left"> <span class="left">
<img id="MSearchSelect" src="search/mag_sel.png" <img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()" onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()" onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/> alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S" <input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)" onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)" onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/> onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right"> </span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span> </span>
</div> </div>
</td> </td>
@ -60,10 +56,10 @@
</table> </table>
</div> </div>
<!-- end header part --> <!-- end header part -->
<!-- Generated by Doxygen 1.8.15 --> <!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search'); var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */ /* @license-end */
</script> </script>
</div><!-- top --> </div><!-- top -->
@ -73,13 +69,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-sync" class="sync"></div> <div id="nav-sync" class="sync"></div>
</div> </div>
</div> </div>
<div id="splitbar" style="-moz-user-select:none;" <div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle"> class="ui-resizable-handle">
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group__zeroinit.html','');}); $(document).ready(function(){initNavTree('group__zeroinit.html',''); initResizable(); });
/* @license-end */ /* @license-end */
</script> </script>
<div id="doc-content"> <div id="doc-content">
@ -92,7 +88,7 @@ $(document).ready(function(){initNavTree('group__zeroinit.html','');});
<!-- iframe showing the search results (closed by default) --> <!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow"> <div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" <iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults"> name="MSearchResults" id="MSearchResults">
</iframe> </iframe>
</div> </div>
@ -105,7 +101,7 @@ $(document).ready(function(){initNavTree('group__zeroinit.html','');});
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<p>The zero-initialized re-allocations are only valid on memory that was originally allocated with zero initialization too. <p>The zero-initialized re-allocations are only valid on memory that was originally allocated with zero initialization too.
<a href="#details">More...</a></p> <a href="#details">More...</a></p>
<table class="memberdecls"> <table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
@ -588,9 +584,7 @@ Functions</h2></td></tr>
<!-- start footer part --> <!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul> <ul>
<li class="footer">Generated by <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul> </ul>
</div> </div>
</body> </body>

View File

@ -3,7 +3,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mi-malloc: Main Page</title> <title>mi-malloc: Main Page</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -13,10 +13,6 @@
<script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script> <script type="text/javascript" src="search/search.js"></script>
@ -37,21 +33,21 @@
<td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td> <td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mi-malloc <div id="projectname">mi-malloc
&#160;<span id="projectnumber">1.6</span> &#160;<span id="projectnumber">1.7/2.0</span>
</div> </div>
</td> </td>
<td> <div id="MSearchBox" class="MSearchBoxInactive"> <td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left"> <span class="left">
<img id="MSearchSelect" src="search/mag_sel.png" <img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()" onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()" onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/> alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S" <input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)" onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)" onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/> onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right"> </span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span> </span>
</div> </div>
</td> </td>
@ -60,10 +56,10 @@
</table> </table>
</div> </div>
<!-- end header part --> <!-- end header part -->
<!-- Generated by Doxygen 1.8.15 --> <!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search'); var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */ /* @license-end */
</script> </script>
</div><!-- top --> </div><!-- top -->
@ -73,13 +69,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-sync" class="sync"></div> <div id="nav-sync" class="sync"></div>
</div> </div>
</div> </div>
<div id="splitbar" style="-moz-user-select:none;" <div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle"> class="ui-resizable-handle">
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('index.html','');}); $(document).ready(function(){initNavTree('index.html',''); initResizable(); });
/* @license-end */ /* @license-end */
</script> </script>
<div id="doc-content"> <div id="doc-content">
@ -92,7 +88,7 @@ $(document).ready(function(){initNavTree('index.html','');});
<!-- iframe showing the search results (closed by default) --> <!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow"> <div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" <iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults"> name="MSearchResults" id="MSearchResults">
</iframe> </iframe>
</div> </div>
@ -103,13 +99,14 @@ $(document).ready(function(){initNavTree('index.html','');});
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<div class="textblock"><p>This is the API documentation of the <a href="https://github.com/microsoft/mimalloc">mimalloc</a> allocator (pronounced "me-malloc") &ndash; a general purpose allocator with excellent <a href="bench.html">performance</a> characteristics. Initially developed by Daan Leijen for the run-time systems of the <a href="https://github.com/koka-lang/koka">Koka</a> and <a href="https://github.com/leanprover/lean">Lean</a> languages.</p> <div class="textblock"><p>This is the API documentation of the <a href="https://github.com/microsoft/mimalloc">mimalloc</a> allocator (pronounced "me-malloc") &ndash; a general purpose allocator with excellent <a href="bench.html">performance</a> characteristics. Initially developed by Daan Leijen for the run-time systems of the <a href="https://github.com/koka-lang/koka">Koka</a> and <a href="https://github.com/leanprover/lean">Lean</a> languages.</p>
<p>It is a drop-in replacement for <code>malloc</code> and can be used in other programs without code changes, for example, on Unix you can use it as: </p><div class="fragment"><div class="line">&gt; LD_PRELOAD=/usr/bin/libmimalloc.so myprogram</div></div><!-- fragment --><p>Notable aspects of the design include:</p> <p>It is a drop-in replacement for <code>malloc</code> and can be used in other programs without code changes, for example, on Unix you can use it as: </p><div class="fragment"><div class="line">&gt; LD_PRELOAD=/usr/bin/libmimalloc.so myprogram</div>
</div><!-- fragment --><p>Notable aspects of the design include:</p>
<ul> <ul>
<li><b>small and consistent</b>: the library is about 8k LOC using simple and consistent data structures. This makes it very suitable to integrate and adapt in other projects. For runtime systems it provides hooks for a monotonic <em>heartbeat</em> and deferred freeing (for bounded worst-case times with reference counting).</li> <li><b>small and consistent</b>: the library is about 8k LOC using simple and consistent data structures. This makes it very suitable to integrate and adapt in other projects. For runtime systems it provides hooks for a monotonic <em>heartbeat</em> and deferred freeing (for bounded worst-case times with reference counting).</li>
<li><b>free list sharding</b>: instead of one big free list (per size class) we have many smaller lists per "mimalloc page" which reduces fragmentation and increases locality &ndash; things that are allocated close in time get allocated close in memory. (A mimalloc page contains blocks of one size class and is usually 64KiB on a 64-bit system).</li> <li><b>free list sharding</b>: instead of one big free list (per size class) we have many smaller lists per "mimalloc page" which reduces fragmentation and increases locality &ndash; things that are allocated close in time get allocated close in memory. (A mimalloc page contains blocks of one size class and is usually 64KiB on a 64-bit system).</li>
<li><b>free list multi-sharding</b>: the big idea! Not only do we shard the free list per mimalloc page, but for each page we have multiple free lists. In particular, there is one list for thread-local <code>free</code> operations, and another one for concurrent <code>free</code> operations. Free-ing from another thread can now be a single CAS without needing sophisticated coordination between threads. Since there will be thousands of separate free lists, contention is naturally distributed over the heap, and the chance of contending on a single location will be low &ndash; this is quite similar to randomized algorithms like skip lists where adding a random oracle removes the need for a more complex algorithm.</li> <li><b>free list multi-sharding</b>: the big idea! Not only do we shard the free list per mimalloc page, but for each page we have multiple free lists. In particular, there is one list for thread-local <code>free</code> operations, and another one for concurrent <code>free</code> operations. Free-ing from another thread can now be a single CAS without needing sophisticated coordination between threads. Since there will be thousands of separate free lists, contention is naturally distributed over the heap, and the chance of contending on a single location will be low &ndash; this is quite similar to randomized algorithms like skip lists where adding a random oracle removes the need for a more complex algorithm.</li>
<li><b>eager page reset</b>: when a "page" becomes empty (with increased chance due to free list sharding) the memory is marked to the OS as unused ("reset" or "purged") reducing (real) memory pressure and fragmentation, especially in long running programs.</li> <li><b>eager page reset</b>: when a "page" becomes empty (with increased chance due to free list sharding) the memory is marked to the OS as unused ("reset" or "purged") reducing (real) memory pressure and fragmentation, especially in long running programs.</li>
<li><b>secure</b>: <em>mimalloc</em> can be build in secure mode, adding guard pages, randomized allocation, encrypted free lists, etc. to protect against various heap vulnerabilities. The performance penalty is only around 3% on average over our benchmarks.</li> <li><b>secure</b>: <em>mimalloc</em> can be build in secure mode, adding guard pages, randomized allocation, encrypted free lists, etc. to protect against various heap vulnerabilities. The performance penalty is only around 5% on average over our benchmarks.</li>
<li><b>first-class heaps</b>: efficiently create and use multiple heaps to allocate across different regions. A heap can be destroyed at once instead of deallocating each object separately.</li> <li><b>first-class heaps</b>: efficiently create and use multiple heaps to allocate across different regions. A heap can be destroyed at once instead of deallocating each object separately.</li>
<li><b>bounded</b>: it does not suffer from <em>blowup</em> [1], has bounded worst-case allocation times (<em>wcat</em>), bounded space overhead (~0.2% meta-data, with at most 12.5% waste in allocation sizes), and has no internal points of contention using only atomic operations.</li> <li><b>bounded</b>: it does not suffer from <em>blowup</em> [1], has bounded worst-case allocation times (<em>wcat</em>), bounded space overhead (~0.2% meta-data, with at most 12.5% waste in allocation sizes), and has no internal points of contention using only atomic operations.</li>
<li><b>fast</b>: In our benchmarks (see <a href="#performance">below</a>), <em>mimalloc</em> outperforms all other leading allocators (<em>jemalloc</em>, <em>tcmalloc</em>, <em>Hoard</em>, etc), and usually uses less memory (up to 25% more in the worst case). A nice property is that it does consistently well over a wide range of benchmarks.</li> <li><b>fast</b>: In our benchmarks (see <a href="#performance">below</a>), <em>mimalloc</em> outperforms all other leading allocators (<em>jemalloc</em>, <em>tcmalloc</em>, <em>Hoard</em>, etc), and usually uses less memory (up to 25% more in the worst case). A nice property is that it does consistently well over a wide range of benchmarks.</li>
@ -138,9 +135,7 @@ $(document).ready(function(){initNavTree('index.html','');});
<!-- start footer part --> <!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul> <ul>
<li class="footer">Generated by <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul> </ul>
</div> </div>
</body> </body>

94
docs/jquery.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -3,7 +3,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mi-malloc: Modules</title> <title>mi-malloc: Modules</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -13,10 +13,6 @@
<script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script> <script type="text/javascript" src="search/search.js"></script>
@ -37,21 +33,21 @@
<td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td> <td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mi-malloc <div id="projectname">mi-malloc
&#160;<span id="projectnumber">1.6</span> &#160;<span id="projectnumber">1.7/2.0</span>
</div> </div>
</td> </td>
<td> <div id="MSearchBox" class="MSearchBoxInactive"> <td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left"> <span class="left">
<img id="MSearchSelect" src="search/mag_sel.png" <img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()" onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()" onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/> alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S" <input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)" onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)" onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/> onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right"> </span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span> </span>
</div> </div>
</td> </td>
@ -60,10 +56,10 @@
</table> </table>
</div> </div>
<!-- end header part --> <!-- end header part -->
<!-- Generated by Doxygen 1.8.15 --> <!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search'); var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */ /* @license-end */
</script> </script>
</div><!-- top --> </div><!-- top -->
@ -73,13 +69,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-sync" class="sync"></div> <div id="nav-sync" class="sync"></div>
</div> </div>
</div> </div>
<div id="splitbar" style="-moz-user-select:none;" <div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle"> class="ui-resizable-handle">
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('modules.html','');}); $(document).ready(function(){initNavTree('modules.html',''); initResizable(); });
/* @license-end */ /* @license-end */
</script> </script>
<div id="doc-content"> <div id="doc-content">
@ -92,7 +88,7 @@ $(document).ready(function(){initNavTree('modules.html','');});
<!-- iframe showing the search results (closed by default) --> <!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow"> <div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" <iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults"> name="MSearchResults" id="MSearchResults">
</iframe> </iframe>
</div> </div>
@ -121,9 +117,7 @@ $(document).ready(function(){initNavTree('modules.html','');});
<!-- start footer part --> <!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul> <ul>
<li class="footer">Generated by <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul> </ul>
</div> </div>
</body> </body>

View File

@ -67,7 +67,7 @@
#nav-tree { #nav-tree {
padding: 0px 0px; padding: 0px 0px;
background-color: #FAFAFF; background-color: #FAFAFF;
font-size:14px; font-size:14px;
overflow:auto; overflow:auto;
} }
@ -143,4 +143,3 @@
#nav-tree { display: none; } #nav-tree { display: none; }
div.ui-resizable-handle { display: none; position: relative; } div.ui-resizable-handle { display: none; position: relative; }
} }

View File

@ -1,25 +1,26 @@
/* /*
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the JavaScript code in this file.
JavaScript code in this file.
Copyright (C) 1997-2017 by Dimitri van Heesch The MIT License (MIT)
This program is free software; you can redistribute it and/or modify Copyright (C) 1997-2020 by Dimitri van Heesch
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful, Permission is hereby granted, free of charge, to any person obtaining a copy of this software
but WITHOUT ANY WARRANTY; without even the implied warranty of and associated documentation files (the "Software"), to deal in the Software without restriction,
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the including without limitation the rights to use, copy, modify, merge, publish, distribute,
GNU General Public License for more details. sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
You should have received a copy of the GNU General Public License along The above copyright notice and this permission notice shall be included in all copies or
with this program; if not, write to the Free Software Foundation, Inc., substantial portions of the Software.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
@licend The above is the entire license notice THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
for the JavaScript code in this file BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/ */
var navTreeSubIndices = new Array(); var navTreeSubIndices = new Array();
var arrowDown = '&#9660;'; var arrowDown = '&#9660;';
@ -70,7 +71,6 @@ function localStorageSupported()
} }
} }
function storeLink(link) function storeLink(link)
{ {
if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) {
@ -102,14 +102,6 @@ function getScript(scriptName,func,show)
script.type = 'text/javascript'; script.type = 'text/javascript';
script.onload = func; script.onload = func;
script.src = scriptName+'.js'; script.src = scriptName+'.js';
if ($.browser.msie && $.browser.version<=8) {
// script.onload does not work with older versions of IE
script.onreadystatechange = function() {
if (script.readyState=='complete' || script.readyState=='loaded') {
func(); if (show) showRoot();
}
}
}
head.appendChild(script); head.appendChild(script);
} }
@ -153,6 +145,7 @@ function gotoAnchor(anchor,aname,updateLocation)
var pos, docContent = $('#doc-content'); var pos, docContent = $('#doc-content');
var ancParent = $(anchor.parent()); var ancParent = $(anchor.parent());
if (ancParent.hasClass('memItemLeft') || if (ancParent.hasClass('memItemLeft') ||
ancParent.hasClass('memtitle') ||
ancParent.hasClass('fieldname') || ancParent.hasClass('fieldname') ||
ancParent.hasClass('fieldtype') || ancParent.hasClass('fieldtype') ||
ancParent.is(':header')) ancParent.is(':header'))
@ -265,7 +258,7 @@ function showRoot()
(function (){ // retry until we can scroll to the selected item (function (){ // retry until we can scroll to the selected item
try { try {
var navtree=$('#nav-tree'); var navtree=$('#nav-tree');
navtree.scrollTo('#selected',0,{offset:-windowHeight/2}); navtree.scrollTo('#selected',100,{offset:-windowHeight/2});
} catch (err) { } catch (err) {
setTimeout(arguments.callee, 0); setTimeout(arguments.callee, 0);
} }
@ -284,12 +277,8 @@ function expandNode(o, node, imm, showRoot)
} else { } else {
if (!node.childrenVisited) { if (!node.childrenVisited) {
getNode(o, node); getNode(o, node);
} if (imm || ($.browser.msie && $.browser.version>8)) {
// somehow slideDown jumps to the start of tree for IE9 :-(
$(node.getChildrenUL()).show();
} else {
$(node.getChildrenUL()).slideDown("fast");
} }
$(node.getChildrenUL()).slideDown("fast");
node.plus_img.innerHTML = arrowDown; node.plus_img.innerHTML = arrowDown;
node.expanded = true; node.expanded = true;
} }
@ -319,7 +308,6 @@ function highlightAnchor()
} else { } else {
glowEffect(anchor.next(),1000); // normal member glowEffect(anchor.next(),1000); // normal member
} }
gotoAnchor(anchor,aname,false);
} }
function selectAndHighlight(hash,n) function selectAndHighlight(hash,n)
@ -481,6 +469,18 @@ function toggleSyncButton(relpath)
} }
} }
var loadTriggered = false;
var readyTriggered = false;
var loadObject,loadToRoot,loadUrl,loadRelPath;
$(window).on('load',function(){
if (readyTriggered) { // ready first
navTo(loadObject,loadToRoot,loadUrl,loadRelPath);
showRoot();
}
loadTriggered=true;
});
function initNavTree(toroot,relpath) function initNavTree(toroot,relpath)
{ {
var o = new Object(); var o = new Object();
@ -511,10 +511,16 @@ function initNavTree(toroot,relpath)
navSync.click(function(){ toggleSyncButton(relpath); }); navSync.click(function(){ toggleSyncButton(relpath); });
} }
$(window).load(function(){ if (loadTriggered) { // load before ready
navTo(o,toroot,hashUrl(),relpath); navTo(o,toroot,hashUrl(),relpath);
showRoot(); showRoot();
}); } else { // ready before load
loadObject = o;
loadToRoot = toroot;
loadUrl = hashUrl();
loadRelPath = relpath;
readyTriggered=true;
}
$(window).bind('hashchange', function(){ $(window).bind('hashchange', function(){
if (window.location.hash && window.location.hash.length>1){ if (window.location.hash && window.location.hash.length>1){

View File

@ -1,25 +1,26 @@
/* /*
@ @licstart The following is the entire license notice for the @licstart The following is the entire license notice for the JavaScript code in this file.
JavaScript code in this file.
Copyright (C) 1997-2017 by Dimitri van Heesch The MIT License (MIT)
This program is free software; you can redistribute it and/or modify Copyright (C) 1997-2020 by Dimitri van Heesch
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful, Permission is hereby granted, free of charge, to any person obtaining a copy of this software
but WITHOUT ANY WARRANTY; without even the implied warranty of and associated documentation files (the "Software"), to deal in the Software without restriction,
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the including without limitation the rights to use, copy, modify, merge, publish, distribute,
GNU General Public License for more details. sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
You should have received a copy of the GNU General Public License along The above copyright notice and this permission notice shall be included in all copies or
with this program; if not, write to the Free Software Foundation, Inc., substantial portions of the Software.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
@licend The above is the entire license notice THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
for the JavaScript code in this file BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/ */
var NAVTREE = var NAVTREE =
[ [

View File

@ -8,14 +8,15 @@ var NAVTREEINDEX0 =
"functions.html":[6,2,0], "functions.html":[6,2,0],
"functions_vars.html":[6,2,1], "functions_vars.html":[6,2,1],
"group__aligned.html":[5,2], "group__aligned.html":[5,2],
"group__aligned.html#ga08647c4593f3b2eef24a919a73eba3a3":[5,2,1], "group__aligned.html#ga08647c4593f3b2eef24a919a73eba3a3":[5,2,2],
"group__aligned.html#ga0cadbcf5b89a7b6fb171bc8df8734819":[5,2,6], "group__aligned.html#ga0cadbcf5b89a7b6fb171bc8df8734819":[5,2,7],
"group__aligned.html#ga4028d1cf4aa4c87c880747044a8322ae":[5,2,4], "group__aligned.html#ga4028d1cf4aa4c87c880747044a8322ae":[5,2,5],
"group__aligned.html#ga53dddb4724042a90315b94bc268fb4c9":[5,2,0], "group__aligned.html#ga53dddb4724042a90315b94bc268fb4c9":[5,2,1],
"group__aligned.html#ga5850da130c936bd77db039dcfbc8295d":[5,2,3], "group__aligned.html#ga5850da130c936bd77db039dcfbc8295d":[5,2,4],
"group__aligned.html#ga5f8c2353766db522565e642fafd8a3f8":[5,2,7], "group__aligned.html#ga5f8c2353766db522565e642fafd8a3f8":[5,2,8],
"group__aligned.html#ga68930196751fa2cca9e1fd0d71bade56":[5,2,2], "group__aligned.html#ga68930196751fa2cca9e1fd0d71bade56":[5,2,3],
"group__aligned.html#gaf66a9ae6c6f08bd6be6fb6ea771faffb":[5,2,5], "group__aligned.html#ga83c03016066b438f51a8095e9140be06":[5,2,0],
"group__aligned.html#gaf66a9ae6c6f08bd6be6fb6ea771faffb":[5,2,6],
"group__analysis.html":[5,6], "group__analysis.html":[5,6],
"group__analysis.html#a332a6c14d736a99699d5453a1cb04b41":[5,6,0,0], "group__analysis.html#a332a6c14d736a99699d5453a1cb04b41":[5,6,0,0],
"group__analysis.html#ab47526df656d8837ec3e97f11b83f835":[5,6,0,2], "group__analysis.html#ab47526df656d8837ec3e97f11b83f835":[5,6,0,2],
@ -38,30 +39,32 @@ var NAVTREEINDEX0 =
"group__cpp.html#gaef2c2bdb4f70857902d3c8903ac095f3":[5,9,2], "group__cpp.html#gaef2c2bdb4f70857902d3c8903ac095f3":[5,9,2],
"group__cpp.html#structmi__stl__allocator":[5,9,0], "group__cpp.html#structmi__stl__allocator":[5,9,0],
"group__extended.html":[5,1], "group__extended.html":[5,1],
"group__extended.html#ga089c859d9eddc5f9b4bd946cd53cebee":[5,1,22], "group__extended.html#ga00ec3324b6b2591c7fe3677baa30a767":[5,1,16],
"group__extended.html#ga0ae4581e85453456a0d658b2b98bf7bf":[5,1,19], "group__extended.html#ga089c859d9eddc5f9b4bd946cd53cebee":[5,1,24],
"group__extended.html#ga0ae4581e85453456a0d658b2b98bf7bf":[5,1,21],
"group__extended.html#ga1ea64283508718d9d645c38efc2f4305":[5,1,0], "group__extended.html#ga1ea64283508718d9d645c38efc2f4305":[5,1,0],
"group__extended.html#ga220f29f40a44404b0061c15bc1c31152":[5,1,23], "group__extended.html#ga220f29f40a44404b0061c15bc1c31152":[5,1,25],
"group__extended.html#ga251d369cda3f1c2a955c555486ed90e5":[5,1,2], "group__extended.html#ga251d369cda3f1c2a955c555486ed90e5":[5,1,2],
"group__extended.html#ga299dae78d25ce112e384a98b7309c5be":[5,1,1], "group__extended.html#ga299dae78d25ce112e384a98b7309c5be":[5,1,1],
"group__extended.html#ga2d126e5c62d3badc35445e5d84166df2":[5,1,16], "group__extended.html#ga2d126e5c62d3badc35445e5d84166df2":[5,1,18],
"group__extended.html#ga3132f521fb756fc0e8ec0b74fb58df50":[5,1,14], "group__extended.html#ga3132f521fb756fc0e8ec0b74fb58df50":[5,1,15],
"group__extended.html#ga3460a6ca91af97be4058f523d3cb8ece":[5,1,10], "group__extended.html#ga3460a6ca91af97be4058f523d3cb8ece":[5,1,11],
"group__extended.html#ga3bb8468b8cfcc6e2a61d98aee85c5f99":[5,1,18], "group__extended.html#ga3bb8468b8cfcc6e2a61d98aee85c5f99":[5,1,20],
"group__extended.html#ga421430e2226d7d468529cec457396756":[5,1,4], "group__extended.html#ga421430e2226d7d468529cec457396756":[5,1,4],
"group__extended.html#ga537f13b299ddf801e49a5a94fde02c79":[5,1,17], "group__extended.html#ga4c6486a1fdcd7a423b5f25fe4be8e0cf":[5,1,9],
"group__extended.html#ga537f13b299ddf801e49a5a94fde02c79":[5,1,19],
"group__extended.html#ga5f071b10d4df1c3658e04e7fd67a94e6":[5,1,6], "group__extended.html#ga5f071b10d4df1c3658e04e7fd67a94e6":[5,1,6],
"group__extended.html#ga7136c2e55cb22c98ecf95d08d6debb99":[5,1,8], "group__extended.html#ga7136c2e55cb22c98ecf95d08d6debb99":[5,1,8],
"group__extended.html#ga7795a13d20087447281858d2c771cca1":[5,1,13], "group__extended.html#ga7795a13d20087447281858d2c771cca1":[5,1,14],
"group__extended.html#ga7d862c2affd5790381da14eb102a364d":[5,1,9], "group__extended.html#ga7d862c2affd5790381da14eb102a364d":[5,1,10],
"group__extended.html#ga854b1de8cb067c7316286c28b2fcd3d1":[5,1,15], "group__extended.html#ga854b1de8cb067c7316286c28b2fcd3d1":[5,1,17],
"group__extended.html#gaa1d55e0e894be240827e5d87ec3a1f45":[5,1,11], "group__extended.html#gaa1d55e0e894be240827e5d87ec3a1f45":[5,1,12],
"group__extended.html#gaad25050b19f30cd79397b227e0157a3f":[5,1,7], "group__extended.html#gaad25050b19f30cd79397b227e0157a3f":[5,1,7],
"group__extended.html#gab1dac8476c46cb9eecab767eb40c1525":[5,1,21], "group__extended.html#gab1dac8476c46cb9eecab767eb40c1525":[5,1,23],
"group__extended.html#gac057927cd06c854b45fe7847e921bd47":[5,1,5], "group__extended.html#gac057927cd06c854b45fe7847e921bd47":[5,1,5],
"group__extended.html#gad823d23444a4b77a40f66bf075a98a0c":[5,1,3], "group__extended.html#gad823d23444a4b77a40f66bf075a98a0c":[5,1,3],
"group__extended.html#gae5b17ff027cd2150b43a33040250cf3f":[5,1,12], "group__extended.html#gae5b17ff027cd2150b43a33040250cf3f":[5,1,13],
"group__extended.html#gaf8e73efc2cbca9ebfdfb166983a04c17":[5,1,20], "group__extended.html#gaf8e73efc2cbca9ebfdfb166983a04c17":[5,1,22],
"group__heap.html":[5,3], "group__heap.html":[5,3],
"group__heap.html#ga00e95ba1e01acac3cfd95bb7a357a6f0":[5,3,20], "group__heap.html#ga00e95ba1e01acac3cfd95bb7a357a6f0":[5,3,20],
"group__heap.html#ga08ca6419a5c057a4d965868998eef487":[5,3,3], "group__heap.html#ga08ca6419a5c057a4d965868998eef487":[5,3,3],
@ -115,30 +118,32 @@ var NAVTREEINDEX0 =
"group__options.html#gaf84921c32375e25754dc2ee6a911fa60":[5,7,5], "group__options.html#gaf84921c32375e25754dc2ee6a911fa60":[5,7,5],
"group__options.html#gafebf7ed116adb38ae5218bc3ce06884c":[5,7,0], "group__options.html#gafebf7ed116adb38ae5218bc3ce06884c":[5,7,0],
"group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca0957ef73b2550764b4840edf48422fda":[5,7,0,1], "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca0957ef73b2550764b4840edf48422fda":[5,7,0,1],
"group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca0ac33a18f6b659fcfaf44efb0bab1b74":[5,7,0,11], "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca0ac33a18f6b659fcfaf44efb0bab1b74":[5,7,0,12],
"group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca154fe170131d5212cff57e22b99523c5":[5,7,0,10], "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca154fe170131d5212cff57e22b99523c5":[5,7,0,11],
"group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca17a190c25be381142d87e0468c4c068c":[5,7,0,13], "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca17a190c25be381142d87e0468c4c068c":[5,7,0,14],
"group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca1e8de72c93da7ff22d91e1e27b52ac2b":[5,7,0,3], "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca1e8de72c93da7ff22d91e1e27b52ac2b":[5,7,0,3],
"group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca2ecbe7ef32f5c84de3739aa4f0b805a1":[5,7,0,7], "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca2ecbe7ef32f5c84de3739aa4f0b805a1":[5,7,0,8],
"group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca32ce97ece29f69e82579679cf8a307ad":[5,7,0,4], "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca32ce97ece29f69e82579679cf8a307ad":[5,7,0,4],
"group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca4192d491200d0055df0554d4cf65054e":[5,7,0,5], "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca4192d491200d0055df0554d4cf65054e":[5,7,0,5],
"group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca4b74ae2a69e445de6c2361b73c1d14bf":[5,7,0,14], "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca4b74ae2a69e445de6c2361b73c1d14bf":[5,7,0,15],
"group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca5b4357b74be0d87568036c32eb1a2e4a":[5,7,0,15], "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca5b4357b74be0d87568036c32eb1a2e4a":[5,7,0,16],
"group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca7c8b7bf5281c581bad64f5daa6442777":[5,7,0,2], "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca7c8b7bf5281c581bad64f5daa6442777":[5,7,0,2],
"group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cac81ee965b130fa81238913a3c239d536":[5,7,0,12], "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884caa13e7926d4339d2aa6fbf61d4473fd5c":[5,7,0,7],
"group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cac81ee965b130fa81238913a3c239d536":[5,7,0,13],
"group__options.html#ggafebf7ed116adb38ae5218bc3ce06884caca7ed041be3b0b9d0b82432c7bf41af2":[5,7,0,6], "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884caca7ed041be3b0b9d0b82432c7bf41af2":[5,7,0,6],
"group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cada854dd272c66342f18a93ee254a2968":[5,7,0,8], "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cada854dd272c66342f18a93ee254a2968":[5,7,0,9],
"group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cafb121d30d87591850d5410ccc3a95c6d":[5,7,0,9], "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cafb121d30d87591850d5410ccc3a95c6d":[5,7,0,10],
"group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cafbf4822e5c00732c5984b32a032837f0":[5,7,0,0], "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cafbf4822e5c00732c5984b32a032837f0":[5,7,0,0],
"group__posix.html":[5,8], "group__posix.html":[5,8],
"group__posix.html#ga06d07cf357bbac5c73ba5d0c0c421e17":[5,8,7], "group__posix.html#ga06d07cf357bbac5c73ba5d0c0c421e17":[5,8,7],
"group__posix.html#ga0d28d5cf61e6bfbb18c63092939fe5c9":[5,8,3], "group__posix.html#ga0d28d5cf61e6bfbb18c63092939fe5c9":[5,8,3],
"group__posix.html#ga1326d2e4388630b5f81ca7206318b8e5":[5,8,1], "group__posix.html#ga1326d2e4388630b5f81ca7206318b8e5":[5,8,1],
"group__posix.html#ga4531c9e775bb3ae12db57c1ba8a5d7de":[5,8,6], "group__posix.html#ga4531c9e775bb3ae12db57c1ba8a5d7de":[5,8,6],
"group__posix.html#ga48fad8648a2f1dab9c87ea9448a52088":[5,8,11], "group__posix.html#ga48fad8648a2f1dab9c87ea9448a52088":[5,8,12],
"group__posix.html#ga705dc7a64bffacfeeb0141501a5c35d7":[5,8,2], "group__posix.html#ga705dc7a64bffacfeeb0141501a5c35d7":[5,8,2],
"group__posix.html#ga72e9d7ffb5fe94d69bc722c8506e27bc":[5,8,5], "group__posix.html#ga72e9d7ffb5fe94d69bc722c8506e27bc":[5,8,5],
"group__posix.html#ga73baaf5951f5165ba0763d0c06b6a93b":[5,8,12], "group__posix.html#ga73baaf5951f5165ba0763d0c06b6a93b":[5,8,13],
"group__posix.html#ga7e1934d60a3e697950eeb48e042bfad5":[5,8,11],
"group__posix.html#gaab7fa71ea93b96873f5d9883db57d40e":[5,8,8], "group__posix.html#gaab7fa71ea93b96873f5d9883db57d40e":[5,8,8],
"group__posix.html#gacff84f226ba9feb2031b8992e5579447":[5,8,9], "group__posix.html#gacff84f226ba9feb2031b8992e5579447":[5,8,9],
"group__posix.html#gad5a69c8fea96aa2b7a7c818c2130090a":[5,8,0], "group__posix.html#gad5a69c8fea96aa2b7a7c818c2130090a":[5,8,0],

File diff suppressed because one or more lines are too long

View File

@ -3,7 +3,7 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mi-malloc: Related Pages</title> <title>mi-malloc: Related Pages</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="tabs.css" rel="stylesheet" type="text/css"/>
@ -13,10 +13,6 @@
<script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script> <script type="text/javascript" src="search/search.js"></script>
@ -37,21 +33,21 @@
<td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td> <td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td>
<td id="projectalign" style="padding-left: 0.5em;"> <td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mi-malloc <div id="projectname">mi-malloc
&#160;<span id="projectnumber">1.6</span> &#160;<span id="projectnumber">1.7/2.0</span>
</div> </div>
</td> </td>
<td> <div id="MSearchBox" class="MSearchBoxInactive"> <td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left"> <span class="left">
<img id="MSearchSelect" src="search/mag_sel.png" <img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()" onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()" onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/> alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S" <input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)" onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)" onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/> onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right"> </span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span> </span>
</div> </div>
</td> </td>
@ -60,10 +56,10 @@
</table> </table>
</div> </div>
<!-- end header part --> <!-- end header part -->
<!-- Generated by Doxygen 1.8.15 --> <!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search'); var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */ /* @license-end */
</script> </script>
</div><!-- top --> </div><!-- top -->
@ -73,13 +69,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div id="nav-sync" class="sync"></div> <div id="nav-sync" class="sync"></div>
</div> </div>
</div> </div>
<div id="splitbar" style="-moz-user-select:none;" <div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle"> class="ui-resizable-handle">
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('pages.html','');}); $(document).ready(function(){initNavTree('pages.html',''); initResizable(); });
/* @license-end */ /* @license-end */
</script> </script>
<div id="doc-content"> <div id="doc-content">
@ -92,7 +88,7 @@ $(document).ready(function(){initNavTree('pages.html','');});
<!-- iframe showing the search results (closed by default) --> <!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow"> <div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" <iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults"> name="MSearchResults" id="MSearchResults">
</iframe> </iframe>
</div> </div>
@ -116,9 +112,7 @@ $(document).ready(function(){initNavTree('pages.html','');});
<!-- start footer part --> <!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul> <ul>
<li class="footer">Generated by <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
</ul> </ul>
</div> </div>
</body> </body>

View File

@ -1,25 +1,26 @@
/* /*
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the JavaScript code in this file.
JavaScript code in this file.
Copyright (C) 1997-2017 by Dimitri van Heesch The MIT License (MIT)
This program is free software; you can redistribute it and/or modify Copyright (C) 1997-2020 by Dimitri van Heesch
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful, Permission is hereby granted, free of charge, to any person obtaining a copy of this software
but WITHOUT ANY WARRANTY; without even the implied warranty of and associated documentation files (the "Software"), to deal in the Software without restriction,
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the including without limitation the rights to use, copy, modify, merge, publish, distribute,
GNU General Public License for more details. sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
You should have received a copy of the GNU General Public License along The above copyright notice and this permission notice shall be included in all copies or
with this program; if not, write to the Free Software Foundation, Inc., substantial portions of the Software.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
@licend The above is the entire license notice THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
for the JavaScript code in this file BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/ */
function initResizable() function initResizable()
{ {
@ -91,6 +92,9 @@ function initResizable()
} }
collapsedWidth=width; collapsedWidth=width;
} }
if (location.hash.slice(1)) {
(document.getElementById(location.hash.slice(1))||document.body).scrollIntoView();
}
} }
function collapseExpand() function collapseExpand()
@ -131,6 +135,6 @@ function initResizable()
var _preventDefault = function(evt) { evt.preventDefault(); }; var _preventDefault = function(evt) { evt.preventDefault(); };
$("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
$(".ui-resizable-handle").dblclick(collapseExpand); $(".ui-resizable-handle").dblclick(collapseExpand);
$(window).load(resizeHeight); $(window).on('load',resizeHeight);
} }
/* @license-end */ /* @license-end */

View File

@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title> <html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/> <link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_0.js"></script> <script type="text/javascript" src="all_0.js"></script>
<script type="text/javascript" src="search.js"></script> <script type="text/javascript" src="search.js"></script>
@ -10,21 +11,27 @@
<div id="SRIndex"> <div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div> <div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div> <div id="SRResults"></div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults(); createResults();
/* @license-end */ /* @license-end */
--></script> </script>
<div class="SRStatus" id="Searching">Searching...</div> <div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div> <div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none"; document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none"; document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults"); var searchResults = new SearchResults("searchResults");
searchResults.Search(); searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */ /* @license-end */
--></script> </script>
</div> </div>
</body> </body>
</html> </html>

View File

@ -1,4 +1,4 @@
var searchData= var searchData=
[ [
['_5fmi_5foption_5flast',['_mi_option_last',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca5b4357b74be0d87568036c32eb1a2e4a',1,'mimalloc-doc.h']]] ['_5fmi_5foption_5flast_0',['_mi_option_last',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca5b4357b74be0d87568036c32eb1a2e4a',1,'mimalloc-doc.h']]]
]; ];

View File

@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title> <html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/> <link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_1.js"></script> <script type="text/javascript" src="all_1.js"></script>
<script type="text/javascript" src="search.js"></script> <script type="text/javascript" src="search.js"></script>
@ -10,21 +11,27 @@
<div id="SRIndex"> <div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div> <div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div> <div id="SRResults"></div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults(); createResults();
/* @license-end */ /* @license-end */
--></script> </script>
<div class="SRStatus" id="Searching">Searching...</div> <div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div> <div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none"; document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none"; document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults"); var searchResults = new SearchResults("searchResults");
searchResults.Search(); searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */ /* @license-end */
--></script> </script>
</div> </div>
</body> </body>
</html> </html>

View File

@ -1,4 +1,4 @@
var searchData= var searchData=
[ [
['aligned_20allocation',['Aligned Allocation',['../group__aligned.html',1,'']]] ['aligned_20allocation_1',['Aligned Allocation',['../group__aligned.html',1,'']]]
]; ];

View File

@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title> <html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/> <link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_2.js"></script> <script type="text/javascript" src="all_2.js"></script>
<script type="text/javascript" src="search.js"></script> <script type="text/javascript" src="search.js"></script>
@ -10,21 +11,27 @@
<div id="SRIndex"> <div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div> <div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div> <div id="SRResults"></div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults(); createResults();
/* @license-end */ /* @license-end */
--></script> </script>
<div class="SRStatus" id="Searching">Searching...</div> <div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div> <div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none"; document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none"; document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults"); var searchResults = new SearchResults("searchResults");
searchResults.Search(); searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */ /* @license-end */
--></script> </script>
</div> </div>
</body> </body>
</html> </html>

View File

@ -1,7 +1,7 @@
var searchData= var searchData=
[ [
['block_5fsize',['block_size',['../group__analysis.html#a332a6c14d736a99699d5453a1cb04b41',1,'mi_heap_area_t']]], ['basic_20allocation_2',['Basic Allocation',['../group__malloc.html',1,'']]],
['blocks',['blocks',['../group__analysis.html#ae0085e6e1cf059a4eb7767e30e9991b8',1,'mi_heap_area_t']]], ['block_5fsize_3',['block_size',['../group__analysis.html#a332a6c14d736a99699d5453a1cb04b41',1,'mi_heap_area_t']]],
['building',['Building',['../build.html',1,'']]], ['blocks_4',['blocks',['../group__analysis.html#ae0085e6e1cf059a4eb7767e30e9991b8',1,'mi_heap_area_t']]],
['basic_20allocation',['Basic Allocation',['../group__malloc.html',1,'']]] ['building_5',['Building',['../build.html',1,'']]]
]; ];

View File

@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title> <html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/> <link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_3.js"></script> <script type="text/javascript" src="all_3.js"></script>
<script type="text/javascript" src="search.js"></script> <script type="text/javascript" src="search.js"></script>
@ -10,21 +11,27 @@
<div id="SRIndex"> <div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div> <div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div> <div id="SRResults"></div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults(); createResults();
/* @license-end */ /* @license-end */
--></script> </script>
<div class="SRStatus" id="Searching">Searching...</div> <div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div> <div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none"; document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none"; document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults"); var searchResults = new SearchResults("searchResults");
searchResults.Search(); searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */ /* @license-end */
--></script> </script>
</div> </div>
</body> </body>
</html> </html>

View File

@ -1,5 +1,5 @@
var searchData= var searchData=
[ [
['committed',['committed',['../group__analysis.html#ab47526df656d8837ec3e97f11b83f835',1,'mi_heap_area_t']]], ['c_2b_2b_20wrappers_6',['C++ wrappers',['../group__cpp.html',1,'']]],
['c_2b_2b_20wrappers',['C++ wrappers',['../group__cpp.html',1,'']]] ['committed_7',['committed',['../group__analysis.html#ab47526df656d8837ec3e97f11b83f835',1,'mi_heap_area_t']]]
]; ];

View File

@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title> <html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/> <link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_4.js"></script> <script type="text/javascript" src="all_4.js"></script>
<script type="text/javascript" src="search.js"></script> <script type="text/javascript" src="search.js"></script>
@ -10,21 +11,27 @@
<div id="SRIndex"> <div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div> <div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div> <div id="SRResults"></div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults(); createResults();
/* @license-end */ /* @license-end */
--></script> </script>
<div class="SRStatus" id="Searching">Searching...</div> <div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div> <div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none"; document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none"; document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults"); var searchResults = new SearchResults("searchResults");
searchResults.Search(); searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */ /* @license-end */
--></script> </script>
</div> </div>
</body> </body>
</html> </html>

View File

@ -1,5 +1,5 @@
var searchData= var searchData=
[ [
['environment_20options',['Environment Options',['../environment.html',1,'']]], ['environment_20options_8',['Environment Options',['../environment.html',1,'']]],
['extended_20functions',['Extended Functions',['../group__extended.html',1,'']]] ['extended_20functions_9',['Extended Functions',['../group__extended.html',1,'']]]
]; ];

View File

@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title> <html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/> <link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_5.js"></script> <script type="text/javascript" src="all_5.js"></script>
<script type="text/javascript" src="search.js"></script> <script type="text/javascript" src="search.js"></script>
@ -10,21 +11,27 @@
<div id="SRIndex"> <div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div> <div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div> <div id="SRResults"></div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults(); createResults();
/* @license-end */ /* @license-end */
--></script> </script>
<div class="SRStatus" id="Searching">Searching...</div> <div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div> <div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none"; document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none"; document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults"); var searchResults = new SearchResults("searchResults");
searchResults.Search(); searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */ /* @license-end */
--></script> </script>
</div> </div>
</body> </body>
</html> </html>

View File

@ -1,5 +1,5 @@
var searchData= var searchData=
[ [
['heap_20introspection',['Heap Introspection',['../group__analysis.html',1,'']]], ['heap_20allocation_10',['Heap Allocation',['../group__heap.html',1,'']]],
['heap_20allocation',['Heap Allocation',['../group__heap.html',1,'']]] ['heap_20introspection_11',['Heap Introspection',['../group__analysis.html',1,'']]]
]; ];

View File

@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title> <html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/> <link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_6.js"></script> <script type="text/javascript" src="all_6.js"></script>
<script type="text/javascript" src="search.js"></script> <script type="text/javascript" src="search.js"></script>
@ -10,21 +11,27 @@
<div id="SRIndex"> <div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div> <div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div> <div id="SRResults"></div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults(); createResults();
/* @license-end */ /* @license-end */
--></script> </script>
<div class="SRStatus" id="Searching">Searching...</div> <div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div> <div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none"; document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none"; document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults"); var searchResults = new SearchResults("searchResults");
searchResults.Search(); searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */ /* @license-end */
--></script> </script>
</div> </div>
</body> </body>
</html> </html>

View File

@ -1,148 +1,153 @@
var searchData= var searchData=
[ [
['mi_5f_5fposix_5fmemalign',['mi__posix_memalign',['../group__posix.html#gad5a69c8fea96aa2b7a7c818c2130090a',1,'mimalloc-doc.h']]], ['mi_5f_5fposix_5fmemalign_12',['mi__posix_memalign',['../group__posix.html#gad5a69c8fea96aa2b7a7c818c2130090a',1,'mimalloc-doc.h']]],
['mi_5faligned_5falloc',['mi_aligned_alloc',['../group__posix.html#ga1326d2e4388630b5f81ca7206318b8e5',1,'mimalloc-doc.h']]], ['mi_5faligned_5falloc_13',['mi_aligned_alloc',['../group__posix.html#ga1326d2e4388630b5f81ca7206318b8e5',1,'mimalloc-doc.h']]],
['mi_5fblock_5fvisit_5ffun',['mi_block_visit_fun',['../group__analysis.html#gadfa01e2900f0e5d515ad5506b26f6d65',1,'mimalloc-doc.h']]], ['mi_5falignment_5fmax_14',['MI_ALIGNMENT_MAX',['../group__aligned.html#ga83c03016066b438f51a8095e9140be06',1,'mimalloc-doc.h']]],
['mi_5fcalloc',['mi_calloc',['../group__malloc.html#ga97fedb4f7107c592fd7f0f0a8949a57d',1,'mimalloc-doc.h']]], ['mi_5fblock_5fvisit_5ffun_15',['mi_block_visit_fun',['../group__analysis.html#gadfa01e2900f0e5d515ad5506b26f6d65',1,'mimalloc-doc.h']]],
['mi_5fcalloc_5faligned',['mi_calloc_aligned',['../group__aligned.html#ga53dddb4724042a90315b94bc268fb4c9',1,'mimalloc-doc.h']]], ['mi_5fcalloc_16',['mi_calloc',['../group__malloc.html#ga97fedb4f7107c592fd7f0f0a8949a57d',1,'mimalloc-doc.h']]],
['mi_5fcalloc_5faligned_5fat',['mi_calloc_aligned_at',['../group__aligned.html#ga08647c4593f3b2eef24a919a73eba3a3',1,'mimalloc-doc.h']]], ['mi_5fcalloc_5faligned_17',['mi_calloc_aligned',['../group__aligned.html#ga53dddb4724042a90315b94bc268fb4c9',1,'mimalloc-doc.h']]],
['mi_5fcalloc_5ftp',['mi_calloc_tp',['../group__typed.html#gae80c47c9d4cab10961fff1a8ac98fc07',1,'mimalloc-doc.h']]], ['mi_5fcalloc_5faligned_5fat_18',['mi_calloc_aligned_at',['../group__aligned.html#ga08647c4593f3b2eef24a919a73eba3a3',1,'mimalloc-doc.h']]],
['mi_5fcfree',['mi_cfree',['../group__posix.html#ga705dc7a64bffacfeeb0141501a5c35d7',1,'mimalloc-doc.h']]], ['mi_5fcalloc_5ftp_19',['mi_calloc_tp',['../group__typed.html#gae80c47c9d4cab10961fff1a8ac98fc07',1,'mimalloc-doc.h']]],
['mi_5fcheck_5fowned',['mi_check_owned',['../group__analysis.html#ga628c237489c2679af84a4d0d143b3dd5',1,'mimalloc-doc.h']]], ['mi_5fcfree_20',['mi_cfree',['../group__posix.html#ga705dc7a64bffacfeeb0141501a5c35d7',1,'mimalloc-doc.h']]],
['mi_5fcollect',['mi_collect',['../group__extended.html#ga421430e2226d7d468529cec457396756',1,'mimalloc-doc.h']]], ['mi_5fcheck_5fowned_21',['mi_check_owned',['../group__analysis.html#ga628c237489c2679af84a4d0d143b3dd5',1,'mimalloc-doc.h']]],
['mi_5fdeferred_5ffree_5ffun',['mi_deferred_free_fun',['../group__extended.html#ga299dae78d25ce112e384a98b7309c5be',1,'mimalloc-doc.h']]], ['mi_5fcollect_22',['mi_collect',['../group__extended.html#ga421430e2226d7d468529cec457396756',1,'mimalloc-doc.h']]],
['mi_5ferror_5ffun',['mi_error_fun',['../group__extended.html#ga251d369cda3f1c2a955c555486ed90e5',1,'mimalloc-doc.h']]], ['mi_5fdeferred_5ffree_5ffun_23',['mi_deferred_free_fun',['../group__extended.html#ga299dae78d25ce112e384a98b7309c5be',1,'mimalloc-doc.h']]],
['mi_5fexpand',['mi_expand',['../group__malloc.html#gaaee66a1d483c3e28f585525fb96707e4',1,'mimalloc-doc.h']]], ['mi_5ferror_5ffun_24',['mi_error_fun',['../group__extended.html#ga251d369cda3f1c2a955c555486ed90e5',1,'mimalloc-doc.h']]],
['mi_5ffree',['mi_free',['../group__malloc.html#gaf2c7b89c327d1f60f59e68b9ea644d95',1,'mimalloc-doc.h']]], ['mi_5fexpand_25',['mi_expand',['../group__malloc.html#gaaee66a1d483c3e28f585525fb96707e4',1,'mimalloc-doc.h']]],
['mi_5ffree_5faligned',['mi_free_aligned',['../group__posix.html#ga0d28d5cf61e6bfbb18c63092939fe5c9',1,'mimalloc-doc.h']]], ['mi_5ffree_26',['mi_free',['../group__malloc.html#gaf2c7b89c327d1f60f59e68b9ea644d95',1,'mimalloc-doc.h']]],
['mi_5ffree_5fsize',['mi_free_size',['../group__posix.html#gae01389eedab8d67341ff52e2aad80ebb',1,'mimalloc-doc.h']]], ['mi_5ffree_5faligned_27',['mi_free_aligned',['../group__posix.html#ga0d28d5cf61e6bfbb18c63092939fe5c9',1,'mimalloc-doc.h']]],
['mi_5ffree_5fsize_5faligned',['mi_free_size_aligned',['../group__posix.html#ga72e9d7ffb5fe94d69bc722c8506e27bc',1,'mimalloc-doc.h']]], ['mi_5ffree_5fsize_28',['mi_free_size',['../group__posix.html#gae01389eedab8d67341ff52e2aad80ebb',1,'mimalloc-doc.h']]],
['mi_5fgood_5fsize',['mi_good_size',['../group__extended.html#gac057927cd06c854b45fe7847e921bd47',1,'mimalloc-doc.h']]], ['mi_5ffree_5fsize_5faligned_29',['mi_free_size_aligned',['../group__posix.html#ga72e9d7ffb5fe94d69bc722c8506e27bc',1,'mimalloc-doc.h']]],
['mi_5fheap_5farea_5ft',['mi_heap_area_t',['../group__analysis.html#structmi__heap__area__t',1,'']]], ['mi_5fgood_5fsize_30',['mi_good_size',['../group__extended.html#gac057927cd06c854b45fe7847e921bd47',1,'mimalloc-doc.h']]],
['mi_5fheap_5fcalloc',['mi_heap_calloc',['../group__heap.html#gaa6702b3c48e9e53e50e81b36f5011d55',1,'mimalloc-doc.h']]], ['mi_5fheap_5farea_5ft_31',['mi_heap_area_t',['../group__analysis.html#structmi__heap__area__t',1,'']]],
['mi_5fheap_5fcalloc_5faligned',['mi_heap_calloc_aligned',['../group__heap.html#ga4af03a6e2b93fae77424d93f889705c3',1,'mimalloc-doc.h']]], ['mi_5fheap_5fcalloc_32',['mi_heap_calloc',['../group__heap.html#gaa6702b3c48e9e53e50e81b36f5011d55',1,'mimalloc-doc.h']]],
['mi_5fheap_5fcalloc_5faligned_5fat',['mi_heap_calloc_aligned_at',['../group__heap.html#ga08ca6419a5c057a4d965868998eef487',1,'mimalloc-doc.h']]], ['mi_5fheap_5fcalloc_5faligned_33',['mi_heap_calloc_aligned',['../group__heap.html#ga4af03a6e2b93fae77424d93f889705c3',1,'mimalloc-doc.h']]],
['mi_5fheap_5fcalloc_5ftp',['mi_heap_calloc_tp',['../group__typed.html#ga4e5d1f1707c90e5f55e023ac5f45fe74',1,'mimalloc-doc.h']]], ['mi_5fheap_5fcalloc_5faligned_5fat_34',['mi_heap_calloc_aligned_at',['../group__heap.html#ga08ca6419a5c057a4d965868998eef487',1,'mimalloc-doc.h']]],
['mi_5fheap_5fcheck_5fowned',['mi_heap_check_owned',['../group__analysis.html#ga0d67c1789faaa15ff366c024fcaf6377',1,'mimalloc-doc.h']]], ['mi_5fheap_5fcalloc_5ftp_35',['mi_heap_calloc_tp',['../group__typed.html#ga4e5d1f1707c90e5f55e023ac5f45fe74',1,'mimalloc-doc.h']]],
['mi_5fheap_5fcollect',['mi_heap_collect',['../group__heap.html#ga7922f7495cde30b1984d0e6072419298',1,'mimalloc-doc.h']]], ['mi_5fheap_5fcheck_5fowned_36',['mi_heap_check_owned',['../group__analysis.html#ga0d67c1789faaa15ff366c024fcaf6377',1,'mimalloc-doc.h']]],
['mi_5fheap_5fcontains_5fblock',['mi_heap_contains_block',['../group__analysis.html#gaa862aa8ed8d57d84cae41fc1022d71af',1,'mimalloc-doc.h']]], ['mi_5fheap_5fcollect_37',['mi_heap_collect',['../group__heap.html#ga7922f7495cde30b1984d0e6072419298',1,'mimalloc-doc.h']]],
['mi_5fheap_5fdelete',['mi_heap_delete',['../group__heap.html#ga2ab1af8d438819b55319c7ef51d1e409',1,'mimalloc-doc.h']]], ['mi_5fheap_5fcontains_5fblock_38',['mi_heap_contains_block',['../group__analysis.html#gaa862aa8ed8d57d84cae41fc1022d71af',1,'mimalloc-doc.h']]],
['mi_5fheap_5fdestroy',['mi_heap_destroy',['../group__heap.html#ga9f9c0844edb9717f4feacd79116b8e0d',1,'mimalloc-doc.h']]], ['mi_5fheap_5fdelete_39',['mi_heap_delete',['../group__heap.html#ga2ab1af8d438819b55319c7ef51d1e409',1,'mimalloc-doc.h']]],
['mi_5fheap_5fget_5fbacking',['mi_heap_get_backing',['../group__heap.html#ga5d03fbe062ffcf38f0f417fd968357fc',1,'mimalloc-doc.h']]], ['mi_5fheap_5fdestroy_40',['mi_heap_destroy',['../group__heap.html#ga9f9c0844edb9717f4feacd79116b8e0d',1,'mimalloc-doc.h']]],
['mi_5fheap_5fget_5fdefault',['mi_heap_get_default',['../group__heap.html#ga8db4cbb87314a989a9a187464d6b5e05',1,'mimalloc-doc.h']]], ['mi_5fheap_5fget_5fbacking_41',['mi_heap_get_backing',['../group__heap.html#ga5d03fbe062ffcf38f0f417fd968357fc',1,'mimalloc-doc.h']]],
['mi_5fheap_5fmalloc',['mi_heap_malloc',['../group__heap.html#ga9cbed01e42c0647907295de92c3fa296',1,'mimalloc-doc.h']]], ['mi_5fheap_5fget_5fdefault_42',['mi_heap_get_default',['../group__heap.html#ga8db4cbb87314a989a9a187464d6b5e05',1,'mimalloc-doc.h']]],
['mi_5fheap_5fmalloc_5faligned',['mi_heap_malloc_aligned',['../group__heap.html#gab5b87e1805306f70df38789fcfcf6653',1,'mimalloc-doc.h']]], ['mi_5fheap_5fmalloc_43',['mi_heap_malloc',['../group__heap.html#ga9cbed01e42c0647907295de92c3fa296',1,'mimalloc-doc.h']]],
['mi_5fheap_5fmalloc_5faligned_5fat',['mi_heap_malloc_aligned_at',['../group__heap.html#ga23acd7680fb0976dde3783254c6c874b',1,'mimalloc-doc.h']]], ['mi_5fheap_5fmalloc_5faligned_44',['mi_heap_malloc_aligned',['../group__heap.html#gab5b87e1805306f70df38789fcfcf6653',1,'mimalloc-doc.h']]],
['mi_5fheap_5fmalloc_5fsmall',['mi_heap_malloc_small',['../group__heap.html#gaa1a1c7a1f4da6826b5a25b70ef878368',1,'mimalloc-doc.h']]], ['mi_5fheap_5fmalloc_5faligned_5fat_45',['mi_heap_malloc_aligned_at',['../group__heap.html#ga23acd7680fb0976dde3783254c6c874b',1,'mimalloc-doc.h']]],
['mi_5fheap_5fmalloc_5ftp',['mi_heap_malloc_tp',['../group__typed.html#ga653bcb24ac495bc19940ecd6898f9cd7',1,'mimalloc-doc.h']]], ['mi_5fheap_5fmalloc_5fsmall_46',['mi_heap_malloc_small',['../group__heap.html#gaa1a1c7a1f4da6826b5a25b70ef878368',1,'mimalloc-doc.h']]],
['mi_5fheap_5fmallocn',['mi_heap_mallocn',['../group__heap.html#ga851da6c43fe0b71c1376cee8aef90db0',1,'mimalloc-doc.h']]], ['mi_5fheap_5fmalloc_5ftp_47',['mi_heap_malloc_tp',['../group__typed.html#ga653bcb24ac495bc19940ecd6898f9cd7',1,'mimalloc-doc.h']]],
['mi_5fheap_5fmallocn_5ftp',['mi_heap_mallocn_tp',['../group__typed.html#ga6b75cb9c4b9c647661d0924552dc6e83',1,'mimalloc-doc.h']]], ['mi_5fheap_5fmallocn_48',['mi_heap_mallocn',['../group__heap.html#ga851da6c43fe0b71c1376cee8aef90db0',1,'mimalloc-doc.h']]],
['mi_5fheap_5fnew',['mi_heap_new',['../group__heap.html#ga766f672ba56f2fbfeb9d9dbb0b7f6b11',1,'mimalloc-doc.h']]], ['mi_5fheap_5fmallocn_5ftp_49',['mi_heap_mallocn_tp',['../group__typed.html#ga6b75cb9c4b9c647661d0924552dc6e83',1,'mimalloc-doc.h']]],
['mi_5fheap_5frealloc',['mi_heap_realloc',['../group__heap.html#gaaef3395f66be48f37bdc8322509c5d81',1,'mimalloc-doc.h']]], ['mi_5fheap_5fnew_50',['mi_heap_new',['../group__heap.html#ga766f672ba56f2fbfeb9d9dbb0b7f6b11',1,'mimalloc-doc.h']]],
['mi_5fheap_5frealloc_5faligned',['mi_heap_realloc_aligned',['../group__heap.html#gafc603b696bd14cae6da28658f950d98c',1,'mimalloc-doc.h']]], ['mi_5fheap_5frealloc_51',['mi_heap_realloc',['../group__heap.html#gaaef3395f66be48f37bdc8322509c5d81',1,'mimalloc-doc.h']]],
['mi_5fheap_5frealloc_5faligned_5fat',['mi_heap_realloc_aligned_at',['../group__heap.html#gaf96c788a1bf553fe2d371de9365e047c',1,'mimalloc-doc.h']]], ['mi_5fheap_5frealloc_5faligned_52',['mi_heap_realloc_aligned',['../group__heap.html#gafc603b696bd14cae6da28658f950d98c',1,'mimalloc-doc.h']]],
['mi_5fheap_5freallocf',['mi_heap_reallocf',['../group__heap.html#ga4a21070eb4e7cce018133c8d5f4b0527',1,'mimalloc-doc.h']]], ['mi_5fheap_5frealloc_5faligned_5fat_53',['mi_heap_realloc_aligned_at',['../group__heap.html#gaf96c788a1bf553fe2d371de9365e047c',1,'mimalloc-doc.h']]],
['mi_5fheap_5freallocn',['mi_heap_reallocn',['../group__heap.html#gac74e94ad9b0c9b57c1c4d88b8825b7a8',1,'mimalloc-doc.h']]], ['mi_5fheap_5freallocf_54',['mi_heap_reallocf',['../group__heap.html#ga4a21070eb4e7cce018133c8d5f4b0527',1,'mimalloc-doc.h']]],
['mi_5fheap_5freallocn_5ftp',['mi_heap_reallocn_tp',['../group__typed.html#gaf213d5422ec35e7f6caad827c79bc948',1,'mimalloc-doc.h']]], ['mi_5fheap_5freallocn_55',['mi_heap_reallocn',['../group__heap.html#gac74e94ad9b0c9b57c1c4d88b8825b7a8',1,'mimalloc-doc.h']]],
['mi_5fheap_5frealpath',['mi_heap_realpath',['../group__heap.html#ga00e95ba1e01acac3cfd95bb7a357a6f0',1,'mimalloc-doc.h']]], ['mi_5fheap_5freallocn_5ftp_56',['mi_heap_reallocn_tp',['../group__typed.html#gaf213d5422ec35e7f6caad827c79bc948',1,'mimalloc-doc.h']]],
['mi_5fheap_5frecalloc',['mi_heap_recalloc',['../group__zeroinit.html#ga8648c5fbb22a80f0262859099f06dfbd',1,'mimalloc-doc.h']]], ['mi_5fheap_5frealpath_57',['mi_heap_realpath',['../group__heap.html#ga00e95ba1e01acac3cfd95bb7a357a6f0',1,'mimalloc-doc.h']]],
['mi_5fheap_5frecalloc_5faligned',['mi_heap_recalloc_aligned',['../group__zeroinit.html#ga9f3f999396c8f77ca5e80e7b40ac29e3',1,'mimalloc-doc.h']]], ['mi_5fheap_5frecalloc_58',['mi_heap_recalloc',['../group__zeroinit.html#ga8648c5fbb22a80f0262859099f06dfbd',1,'mimalloc-doc.h']]],
['mi_5fheap_5frecalloc_5faligned_5fat',['mi_heap_recalloc_aligned_at',['../group__zeroinit.html#ga496452c96f1de8c500be9fddf52edaf7',1,'mimalloc-doc.h']]], ['mi_5fheap_5frecalloc_5faligned_59',['mi_heap_recalloc_aligned',['../group__zeroinit.html#ga9f3f999396c8f77ca5e80e7b40ac29e3',1,'mimalloc-doc.h']]],
['mi_5fheap_5frecalloc_5ftp',['mi_heap_recalloc_tp',['../group__typed.html#ga3e50a1600958fcaf1a7f3560c9174f9e',1,'mimalloc-doc.h']]], ['mi_5fheap_5frecalloc_5faligned_5fat_60',['mi_heap_recalloc_aligned_at',['../group__zeroinit.html#ga496452c96f1de8c500be9fddf52edaf7',1,'mimalloc-doc.h']]],
['mi_5fheap_5frezalloc',['mi_heap_rezalloc',['../group__zeroinit.html#gacfad83f14eb5d6a42a497a898e19fc76',1,'mimalloc-doc.h']]], ['mi_5fheap_5frecalloc_5ftp_61',['mi_heap_recalloc_tp',['../group__typed.html#ga3e50a1600958fcaf1a7f3560c9174f9e',1,'mimalloc-doc.h']]],
['mi_5fheap_5frezalloc_5faligned',['mi_heap_rezalloc_aligned',['../group__zeroinit.html#ga375fa8a611c51905e592d5d467c49664',1,'mimalloc-doc.h']]], ['mi_5fheap_5frezalloc_62',['mi_heap_rezalloc',['../group__zeroinit.html#gacfad83f14eb5d6a42a497a898e19fc76',1,'mimalloc-doc.h']]],
['mi_5fheap_5frezalloc_5faligned_5fat',['mi_heap_rezalloc_aligned_at',['../group__zeroinit.html#gac90da54fa7e5d10bdc97ce0b51dce2eb',1,'mimalloc-doc.h']]], ['mi_5fheap_5frezalloc_5faligned_63',['mi_heap_rezalloc_aligned',['../group__zeroinit.html#ga375fa8a611c51905e592d5d467c49664',1,'mimalloc-doc.h']]],
['mi_5fheap_5fset_5fdefault',['mi_heap_set_default',['../group__heap.html#gab8631ec88c8d26641b68b5d25dcd4422',1,'mimalloc-doc.h']]], ['mi_5fheap_5frezalloc_5faligned_5fat_64',['mi_heap_rezalloc_aligned_at',['../group__zeroinit.html#gac90da54fa7e5d10bdc97ce0b51dce2eb',1,'mimalloc-doc.h']]],
['mi_5fheap_5fstrdup',['mi_heap_strdup',['../group__heap.html#ga139d6b09dbf50c3c2523d0f4d1cfdeb5',1,'mimalloc-doc.h']]], ['mi_5fheap_5fset_5fdefault_65',['mi_heap_set_default',['../group__heap.html#gab8631ec88c8d26641b68b5d25dcd4422',1,'mimalloc-doc.h']]],
['mi_5fheap_5fstrndup',['mi_heap_strndup',['../group__heap.html#ga8e3dbd46650dd26573cf307a2c8f1f5a',1,'mimalloc-doc.h']]], ['mi_5fheap_5fstrdup_66',['mi_heap_strdup',['../group__heap.html#ga139d6b09dbf50c3c2523d0f4d1cfdeb5',1,'mimalloc-doc.h']]],
['mi_5fheap_5ft',['mi_heap_t',['../group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2',1,'mimalloc-doc.h']]], ['mi_5fheap_5fstrndup_67',['mi_heap_strndup',['../group__heap.html#ga8e3dbd46650dd26573cf307a2c8f1f5a',1,'mimalloc-doc.h']]],
['mi_5fheap_5fvisit_5fblocks',['mi_heap_visit_blocks',['../group__analysis.html#ga70c46687dc6e9dc98b232b02646f8bed',1,'mimalloc-doc.h']]], ['mi_5fheap_5ft_68',['mi_heap_t',['../group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2',1,'mimalloc-doc.h']]],
['mi_5fheap_5fzalloc',['mi_heap_zalloc',['../group__heap.html#ga903104592c8ed53417a3762da6241133',1,'mimalloc-doc.h']]], ['mi_5fheap_5fvisit_5fblocks_69',['mi_heap_visit_blocks',['../group__analysis.html#ga70c46687dc6e9dc98b232b02646f8bed',1,'mimalloc-doc.h']]],
['mi_5fheap_5fzalloc_5faligned',['mi_heap_zalloc_aligned',['../group__heap.html#gaa450a59c6c7ae5fdbd1c2b80a8329ef0',1,'mimalloc-doc.h']]], ['mi_5fheap_5fzalloc_70',['mi_heap_zalloc',['../group__heap.html#ga903104592c8ed53417a3762da6241133',1,'mimalloc-doc.h']]],
['mi_5fheap_5fzalloc_5faligned_5fat',['mi_heap_zalloc_aligned_at',['../group__heap.html#ga45fb43a62776fbebbdf1edd99b527954',1,'mimalloc-doc.h']]], ['mi_5fheap_5fzalloc_5faligned_71',['mi_heap_zalloc_aligned',['../group__heap.html#gaa450a59c6c7ae5fdbd1c2b80a8329ef0',1,'mimalloc-doc.h']]],
['mi_5fheap_5fzalloc_5ftp',['mi_heap_zalloc_tp',['../group__typed.html#gad6e87e86e994aa14416ae9b5d4c188fe',1,'mimalloc-doc.h']]], ['mi_5fheap_5fzalloc_5faligned_5fat_72',['mi_heap_zalloc_aligned_at',['../group__heap.html#ga45fb43a62776fbebbdf1edd99b527954',1,'mimalloc-doc.h']]],
['mi_5fis_5fin_5fheap_5fregion',['mi_is_in_heap_region',['../group__extended.html#ga5f071b10d4df1c3658e04e7fd67a94e6',1,'mimalloc-doc.h']]], ['mi_5fheap_5fzalloc_5ftp_73',['mi_heap_zalloc_tp',['../group__typed.html#gad6e87e86e994aa14416ae9b5d4c188fe',1,'mimalloc-doc.h']]],
['mi_5fis_5fredirected',['mi_is_redirected',['../group__extended.html#gaad25050b19f30cd79397b227e0157a3f',1,'mimalloc-doc.h']]], ['mi_5fis_5fin_5fheap_5fregion_74',['mi_is_in_heap_region',['../group__extended.html#ga5f071b10d4df1c3658e04e7fd67a94e6',1,'mimalloc-doc.h']]],
['mi_5fmalloc',['mi_malloc',['../group__malloc.html#ga3406e8b168bc74c8637b11571a6da83a',1,'mimalloc-doc.h']]], ['mi_5fis_5fredirected_75',['mi_is_redirected',['../group__extended.html#gaad25050b19f30cd79397b227e0157a3f',1,'mimalloc-doc.h']]],
['mi_5fmalloc_5faligned',['mi_malloc_aligned',['../group__aligned.html#ga68930196751fa2cca9e1fd0d71bade56',1,'mimalloc-doc.h']]], ['mi_5fmalloc_76',['mi_malloc',['../group__malloc.html#ga3406e8b168bc74c8637b11571a6da83a',1,'mimalloc-doc.h']]],
['mi_5fmalloc_5faligned_5fat',['mi_malloc_aligned_at',['../group__aligned.html#ga5850da130c936bd77db039dcfbc8295d',1,'mimalloc-doc.h']]], ['mi_5fmalloc_5faligned_77',['mi_malloc_aligned',['../group__aligned.html#ga68930196751fa2cca9e1fd0d71bade56',1,'mimalloc-doc.h']]],
['mi_5fmalloc_5fsize',['mi_malloc_size',['../group__posix.html#ga4531c9e775bb3ae12db57c1ba8a5d7de',1,'mimalloc-doc.h']]], ['mi_5fmalloc_5faligned_5fat_78',['mi_malloc_aligned_at',['../group__aligned.html#ga5850da130c936bd77db039dcfbc8295d',1,'mimalloc-doc.h']]],
['mi_5fmalloc_5fsmall',['mi_malloc_small',['../group__extended.html#ga7136c2e55cb22c98ecf95d08d6debb99',1,'mimalloc-doc.h']]], ['mi_5fmalloc_5fsize_79',['mi_malloc_size',['../group__posix.html#ga4531c9e775bb3ae12db57c1ba8a5d7de',1,'mimalloc-doc.h']]],
['mi_5fmalloc_5ftp',['mi_malloc_tp',['../group__typed.html#ga0619a62c5fd886f1016030abe91f0557',1,'mimalloc-doc.h']]], ['mi_5fmalloc_5fsmall_80',['mi_malloc_small',['../group__extended.html#ga7136c2e55cb22c98ecf95d08d6debb99',1,'mimalloc-doc.h']]],
['mi_5fmalloc_5fusable_5fsize',['mi_malloc_usable_size',['../group__posix.html#ga06d07cf357bbac5c73ba5d0c0c421e17',1,'mimalloc-doc.h']]], ['mi_5fmalloc_5ftp_81',['mi_malloc_tp',['../group__typed.html#ga0619a62c5fd886f1016030abe91f0557',1,'mimalloc-doc.h']]],
['mi_5fmallocn',['mi_mallocn',['../group__malloc.html#ga0b05e2bf0f73e7401ae08597ff782ac6',1,'mimalloc-doc.h']]], ['mi_5fmalloc_5fusable_5fsize_82',['mi_malloc_usable_size',['../group__posix.html#ga06d07cf357bbac5c73ba5d0c0c421e17',1,'mimalloc-doc.h']]],
['mi_5fmallocn_5ftp',['mi_mallocn_tp',['../group__typed.html#gae5cb6e0fafc9f23169c5622e077afe8b',1,'mimalloc-doc.h']]], ['mi_5fmallocn_83',['mi_mallocn',['../group__malloc.html#ga0b05e2bf0f73e7401ae08597ff782ac6',1,'mimalloc-doc.h']]],
['mi_5fmemalign',['mi_memalign',['../group__posix.html#gaab7fa71ea93b96873f5d9883db57d40e',1,'mimalloc-doc.h']]], ['mi_5fmallocn_5ftp_84',['mi_mallocn_tp',['../group__typed.html#gae5cb6e0fafc9f23169c5622e077afe8b',1,'mimalloc-doc.h']]],
['mi_5fnew',['mi_new',['../group__cpp.html#gaad048a9fce3d02c5909cd05c6ec24545',1,'mimalloc-doc.h']]], ['mi_5fmanage_5fos_5fmemory_85',['mi_manage_os_memory',['../group__extended.html#ga4c6486a1fdcd7a423b5f25fe4be8e0cf',1,'mimalloc-doc.h']]],
['mi_5fnew_5faligned',['mi_new_aligned',['../group__cpp.html#gaef2c2bdb4f70857902d3c8903ac095f3',1,'mimalloc-doc.h']]], ['mi_5fmemalign_86',['mi_memalign',['../group__posix.html#gaab7fa71ea93b96873f5d9883db57d40e',1,'mimalloc-doc.h']]],
['mi_5fnew_5faligned_5fnothrow',['mi_new_aligned_nothrow',['../group__cpp.html#gab5e29558926d934c3f1cae8c815f942c',1,'mimalloc-doc.h']]], ['mi_5fnew_87',['mi_new',['../group__cpp.html#gaad048a9fce3d02c5909cd05c6ec24545',1,'mimalloc-doc.h']]],
['mi_5fnew_5fn',['mi_new_n',['../group__cpp.html#gae7bc4f56cd57ed3359060ff4f38bda81',1,'mimalloc-doc.h']]], ['mi_5fnew_5faligned_88',['mi_new_aligned',['../group__cpp.html#gaef2c2bdb4f70857902d3c8903ac095f3',1,'mimalloc-doc.h']]],
['mi_5fnew_5fnothrow',['mi_new_nothrow',['../group__cpp.html#gaeaded64eda71ed6b1d569d3e723abc4a',1,'mimalloc-doc.h']]], ['mi_5fnew_5faligned_5fnothrow_89',['mi_new_aligned_nothrow',['../group__cpp.html#gab5e29558926d934c3f1cae8c815f942c',1,'mimalloc-doc.h']]],
['mi_5fnew_5frealloc',['mi_new_realloc',['../group__cpp.html#gaab78a32f55149e9fbf432d5288e38e1e',1,'mimalloc-doc.h']]], ['mi_5fnew_5fn_90',['mi_new_n',['../group__cpp.html#gae7bc4f56cd57ed3359060ff4f38bda81',1,'mimalloc-doc.h']]],
['mi_5fnew_5freallocn',['mi_new_reallocn',['../group__cpp.html#ga756f4b2bc6a7ecd0a90baea8e90c7907',1,'mimalloc-doc.h']]], ['mi_5fnew_5fnothrow_91',['mi_new_nothrow',['../group__cpp.html#gaeaded64eda71ed6b1d569d3e723abc4a',1,'mimalloc-doc.h']]],
['mi_5foption_5fdisable',['mi_option_disable',['../group__options.html#gaebf6ff707a2e688ebb1a2296ca564054',1,'mimalloc-doc.h']]], ['mi_5fnew_5frealloc_92',['mi_new_realloc',['../group__cpp.html#gaab78a32f55149e9fbf432d5288e38e1e',1,'mimalloc-doc.h']]],
['mi_5foption_5feager_5fcommit',['mi_option_eager_commit',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca1e8de72c93da7ff22d91e1e27b52ac2b',1,'mimalloc-doc.h']]], ['mi_5fnew_5freallocn_93',['mi_new_reallocn',['../group__cpp.html#ga756f4b2bc6a7ecd0a90baea8e90c7907',1,'mimalloc-doc.h']]],
['mi_5foption_5feager_5fcommit_5fdelay',['mi_option_eager_commit_delay',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca17a190c25be381142d87e0468c4c068c',1,'mimalloc-doc.h']]], ['mi_5foption_5fdisable_94',['mi_option_disable',['../group__options.html#gaebf6ff707a2e688ebb1a2296ca564054',1,'mimalloc-doc.h']]],
['mi_5foption_5feager_5fregion_5fcommit',['mi_option_eager_region_commit',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca32ce97ece29f69e82579679cf8a307ad',1,'mimalloc-doc.h']]], ['mi_5foption_5feager_5fcommit_95',['mi_option_eager_commit',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca1e8de72c93da7ff22d91e1e27b52ac2b',1,'mimalloc-doc.h']]],
['mi_5foption_5fenable',['mi_option_enable',['../group__options.html#ga04180ae41b0d601421dd62ced40ca050',1,'mimalloc-doc.h']]], ['mi_5foption_5feager_5fcommit_5fdelay_96',['mi_option_eager_commit_delay',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca17a190c25be381142d87e0468c4c068c',1,'mimalloc-doc.h']]],
['mi_5foption_5fget',['mi_option_get',['../group__options.html#ga7e8af195cc81d3fa64ccf2662caa565a',1,'mimalloc-doc.h']]], ['mi_5foption_5feager_5fregion_5fcommit_97',['mi_option_eager_region_commit',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca32ce97ece29f69e82579679cf8a307ad',1,'mimalloc-doc.h']]],
['mi_5foption_5fis_5fenabled',['mi_option_is_enabled',['../group__options.html#ga459ad98f18b3fc9275474807fe0ca188',1,'mimalloc-doc.h']]], ['mi_5foption_5fenable_98',['mi_option_enable',['../group__options.html#ga04180ae41b0d601421dd62ced40ca050',1,'mimalloc-doc.h']]],
['mi_5foption_5flarge_5fos_5fpages',['mi_option_large_os_pages',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca4192d491200d0055df0554d4cf65054e',1,'mimalloc-doc.h']]], ['mi_5foption_5fget_99',['mi_option_get',['../group__options.html#ga7e8af195cc81d3fa64ccf2662caa565a',1,'mimalloc-doc.h']]],
['mi_5foption_5fos_5ftag',['mi_option_os_tag',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca4b74ae2a69e445de6c2361b73c1d14bf',1,'mimalloc-doc.h']]], ['mi_5foption_5fis_5fenabled_100',['mi_option_is_enabled',['../group__options.html#ga459ad98f18b3fc9275474807fe0ca188',1,'mimalloc-doc.h']]],
['mi_5foption_5fpage_5freset',['mi_option_page_reset',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cada854dd272c66342f18a93ee254a2968',1,'mimalloc-doc.h']]], ['mi_5foption_5flarge_5fos_5fpages_101',['mi_option_large_os_pages',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca4192d491200d0055df0554d4cf65054e',1,'mimalloc-doc.h']]],
['mi_5foption_5freserve_5fhuge_5fos_5fpages',['mi_option_reserve_huge_os_pages',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884caca7ed041be3b0b9d0b82432c7bf41af2',1,'mimalloc-doc.h']]], ['mi_5foption_5fos_5ftag_102',['mi_option_os_tag',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca4b74ae2a69e445de6c2361b73c1d14bf',1,'mimalloc-doc.h']]],
['mi_5foption_5freset_5fdecommits',['mi_option_reset_decommits',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cac81ee965b130fa81238913a3c239d536',1,'mimalloc-doc.h']]], ['mi_5foption_5fpage_5freset_103',['mi_option_page_reset',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cada854dd272c66342f18a93ee254a2968',1,'mimalloc-doc.h']]],
['mi_5foption_5freset_5fdelay',['mi_option_reset_delay',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca154fe170131d5212cff57e22b99523c5',1,'mimalloc-doc.h']]], ['mi_5foption_5freserve_5fhuge_5fos_5fpages_104',['mi_option_reserve_huge_os_pages',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884caca7ed041be3b0b9d0b82432c7bf41af2',1,'mimalloc-doc.h']]],
['mi_5foption_5fsegment_5fcache',['mi_option_segment_cache',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca2ecbe7ef32f5c84de3739aa4f0b805a1',1,'mimalloc-doc.h']]], ['mi_5foption_5freserve_5fhuge_5fos_5fpages_5fat_105',['mi_option_reserve_huge_os_pages_at',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884caa13e7926d4339d2aa6fbf61d4473fd5c',1,'mimalloc-doc.h']]],
['mi_5foption_5fsegment_5freset',['mi_option_segment_reset',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cafb121d30d87591850d5410ccc3a95c6d',1,'mimalloc-doc.h']]], ['mi_5foption_5freset_5fdecommits_106',['mi_option_reset_decommits',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cac81ee965b130fa81238913a3c239d536',1,'mimalloc-doc.h']]],
['mi_5foption_5fset',['mi_option_set',['../group__options.html#gaf84921c32375e25754dc2ee6a911fa60',1,'mimalloc-doc.h']]], ['mi_5foption_5freset_5fdelay_107',['mi_option_reset_delay',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca154fe170131d5212cff57e22b99523c5',1,'mimalloc-doc.h']]],
['mi_5foption_5fset_5fdefault',['mi_option_set_default',['../group__options.html#ga7ef623e440e6e5545cb08c94e71e4b90',1,'mimalloc-doc.h']]], ['mi_5foption_5fsegment_5fcache_108',['mi_option_segment_cache',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca2ecbe7ef32f5c84de3739aa4f0b805a1',1,'mimalloc-doc.h']]],
['mi_5foption_5fset_5fenabled',['mi_option_set_enabled',['../group__options.html#ga9a13d05fcb77489cb06d4d017ebd8bed',1,'mimalloc-doc.h']]], ['mi_5foption_5fsegment_5freset_109',['mi_option_segment_reset',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cafb121d30d87591850d5410ccc3a95c6d',1,'mimalloc-doc.h']]],
['mi_5foption_5fset_5fenabled_5fdefault',['mi_option_set_enabled_default',['../group__options.html#ga65518b69ec5d32336b50e07f74b3f629',1,'mimalloc-doc.h']]], ['mi_5foption_5fset_110',['mi_option_set',['../group__options.html#gaf84921c32375e25754dc2ee6a911fa60',1,'mimalloc-doc.h']]],
['mi_5foption_5fshow_5ferrors',['mi_option_show_errors',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cafbf4822e5c00732c5984b32a032837f0',1,'mimalloc-doc.h']]], ['mi_5foption_5fset_5fdefault_111',['mi_option_set_default',['../group__options.html#ga7ef623e440e6e5545cb08c94e71e4b90',1,'mimalloc-doc.h']]],
['mi_5foption_5fshow_5fstats',['mi_option_show_stats',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca0957ef73b2550764b4840edf48422fda',1,'mimalloc-doc.h']]], ['mi_5foption_5fset_5fenabled_112',['mi_option_set_enabled',['../group__options.html#ga9a13d05fcb77489cb06d4d017ebd8bed',1,'mimalloc-doc.h']]],
['mi_5foption_5ft',['mi_option_t',['../group__options.html#gafebf7ed116adb38ae5218bc3ce06884c',1,'mimalloc-doc.h']]], ['mi_5foption_5fset_5fenabled_5fdefault_113',['mi_option_set_enabled_default',['../group__options.html#ga65518b69ec5d32336b50e07f74b3f629',1,'mimalloc-doc.h']]],
['mi_5foption_5fuse_5fnuma_5fnodes',['mi_option_use_numa_nodes',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca0ac33a18f6b659fcfaf44efb0bab1b74',1,'mimalloc-doc.h']]], ['mi_5foption_5fshow_5ferrors_114',['mi_option_show_errors',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cafbf4822e5c00732c5984b32a032837f0',1,'mimalloc-doc.h']]],
['mi_5foption_5fverbose',['mi_option_verbose',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca7c8b7bf5281c581bad64f5daa6442777',1,'mimalloc-doc.h']]], ['mi_5foption_5fshow_5fstats_115',['mi_option_show_stats',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca0957ef73b2550764b4840edf48422fda',1,'mimalloc-doc.h']]],
['mi_5foutput_5ffun',['mi_output_fun',['../group__extended.html#gad823d23444a4b77a40f66bf075a98a0c',1,'mimalloc-doc.h']]], ['mi_5foption_5ft_116',['mi_option_t',['../group__options.html#gafebf7ed116adb38ae5218bc3ce06884c',1,'mimalloc-doc.h']]],
['mi_5fposix_5fmemalign',['mi_posix_memalign',['../group__posix.html#gacff84f226ba9feb2031b8992e5579447',1,'mimalloc-doc.h']]], ['mi_5foption_5fuse_5fnuma_5fnodes_117',['mi_option_use_numa_nodes',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca0ac33a18f6b659fcfaf44efb0bab1b74',1,'mimalloc-doc.h']]],
['mi_5fprocess_5finfo',['mi_process_info',['../group__extended.html#ga7d862c2affd5790381da14eb102a364d',1,'mimalloc-doc.h']]], ['mi_5foption_5fverbose_118',['mi_option_verbose',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca7c8b7bf5281c581bad64f5daa6442777',1,'mimalloc-doc.h']]],
['mi_5fpvalloc',['mi_pvalloc',['../group__posix.html#gaeb325c39b887d3b90d85d1eb1712fb1e',1,'mimalloc-doc.h']]], ['mi_5foutput_5ffun_119',['mi_output_fun',['../group__extended.html#gad823d23444a4b77a40f66bf075a98a0c',1,'mimalloc-doc.h']]],
['mi_5frealloc',['mi_realloc',['../group__malloc.html#gaf11eb497da57bdfb2de65eb191c69db6',1,'mimalloc-doc.h']]], ['mi_5fposix_5fmemalign_120',['mi_posix_memalign',['../group__posix.html#gacff84f226ba9feb2031b8992e5579447',1,'mimalloc-doc.h']]],
['mi_5frealloc_5faligned',['mi_realloc_aligned',['../group__aligned.html#ga4028d1cf4aa4c87c880747044a8322ae',1,'mimalloc-doc.h']]], ['mi_5fprocess_5finfo_121',['mi_process_info',['../group__extended.html#ga7d862c2affd5790381da14eb102a364d',1,'mimalloc-doc.h']]],
['mi_5frealloc_5faligned_5fat',['mi_realloc_aligned_at',['../group__aligned.html#gaf66a9ae6c6f08bd6be6fb6ea771faffb',1,'mimalloc-doc.h']]], ['mi_5fpvalloc_122',['mi_pvalloc',['../group__posix.html#gaeb325c39b887d3b90d85d1eb1712fb1e',1,'mimalloc-doc.h']]],
['mi_5freallocarray',['mi_reallocarray',['../group__posix.html#ga48fad8648a2f1dab9c87ea9448a52088',1,'mimalloc-doc.h']]], ['mi_5frealloc_123',['mi_realloc',['../group__malloc.html#gaf11eb497da57bdfb2de65eb191c69db6',1,'mimalloc-doc.h']]],
['mi_5freallocf',['mi_reallocf',['../group__malloc.html#gafe68ac7c5e24a65cd55c9d6b152211a0',1,'mimalloc-doc.h']]], ['mi_5frealloc_5faligned_124',['mi_realloc_aligned',['../group__aligned.html#ga4028d1cf4aa4c87c880747044a8322ae',1,'mimalloc-doc.h']]],
['mi_5freallocn',['mi_reallocn',['../group__malloc.html#ga61d57b4144ba24fba5c1e9b956d13853',1,'mimalloc-doc.h']]], ['mi_5frealloc_5faligned_5fat_125',['mi_realloc_aligned_at',['../group__aligned.html#gaf66a9ae6c6f08bd6be6fb6ea771faffb',1,'mimalloc-doc.h']]],
['mi_5freallocn_5ftp',['mi_reallocn_tp',['../group__typed.html#ga1158b49a55dfa81f58a4426a7578f523',1,'mimalloc-doc.h']]], ['mi_5freallocarr_126',['mi_reallocarr',['../group__posix.html#ga7e1934d60a3e697950eeb48e042bfad5',1,'mimalloc-doc.h']]],
['mi_5frealpath',['mi_realpath',['../group__malloc.html#ga08cec32dd5bbe7da91c78d19f1b5bebe',1,'mimalloc-doc.h']]], ['mi_5freallocarray_127',['mi_reallocarray',['../group__posix.html#ga48fad8648a2f1dab9c87ea9448a52088',1,'mimalloc-doc.h']]],
['mi_5frecalloc',['mi_recalloc',['../group__malloc.html#ga23a0fbb452b5dce8e31fab1a1958cacc',1,'mimalloc-doc.h']]], ['mi_5freallocf_128',['mi_reallocf',['../group__malloc.html#gafe68ac7c5e24a65cd55c9d6b152211a0',1,'mimalloc-doc.h']]],
['mi_5frecalloc_5faligned',['mi_recalloc_aligned',['../group__zeroinit.html#ga3e7e5c291acf1c7fd7ffd9914a9f945f',1,'mimalloc-doc.h']]], ['mi_5freallocn_129',['mi_reallocn',['../group__malloc.html#ga61d57b4144ba24fba5c1e9b956d13853',1,'mimalloc-doc.h']]],
['mi_5frecalloc_5faligned_5fat',['mi_recalloc_aligned_at',['../group__zeroinit.html#ga4ff5e92ad73585418a072c9d059e5cf9',1,'mimalloc-doc.h']]], ['mi_5freallocn_5ftp_130',['mi_reallocn_tp',['../group__typed.html#ga1158b49a55dfa81f58a4426a7578f523',1,'mimalloc-doc.h']]],
['mi_5fregister_5fdeferred_5ffree',['mi_register_deferred_free',['../group__extended.html#ga3460a6ca91af97be4058f523d3cb8ece',1,'mimalloc-doc.h']]], ['mi_5frealpath_131',['mi_realpath',['../group__malloc.html#ga08cec32dd5bbe7da91c78d19f1b5bebe',1,'mimalloc-doc.h']]],
['mi_5fregister_5ferror',['mi_register_error',['../group__extended.html#gaa1d55e0e894be240827e5d87ec3a1f45',1,'mimalloc-doc.h']]], ['mi_5frecalloc_132',['mi_recalloc',['../group__malloc.html#ga23a0fbb452b5dce8e31fab1a1958cacc',1,'mimalloc-doc.h']]],
['mi_5fregister_5foutput',['mi_register_output',['../group__extended.html#gae5b17ff027cd2150b43a33040250cf3f',1,'mimalloc-doc.h']]], ['mi_5frecalloc_5faligned_133',['mi_recalloc_aligned',['../group__zeroinit.html#ga3e7e5c291acf1c7fd7ffd9914a9f945f',1,'mimalloc-doc.h']]],
['mi_5freserve_5fhuge_5fos_5fpages_5fat',['mi_reserve_huge_os_pages_at',['../group__extended.html#ga7795a13d20087447281858d2c771cca1',1,'mimalloc-doc.h']]], ['mi_5frecalloc_5faligned_5fat_134',['mi_recalloc_aligned_at',['../group__zeroinit.html#ga4ff5e92ad73585418a072c9d059e5cf9',1,'mimalloc-doc.h']]],
['mi_5freserve_5fhuge_5fos_5fpages_5finterleave',['mi_reserve_huge_os_pages_interleave',['../group__extended.html#ga3132f521fb756fc0e8ec0b74fb58df50',1,'mimalloc-doc.h']]], ['mi_5fregister_5fdeferred_5ffree_135',['mi_register_deferred_free',['../group__extended.html#ga3460a6ca91af97be4058f523d3cb8ece',1,'mimalloc-doc.h']]],
['mi_5frezalloc',['mi_rezalloc',['../group__zeroinit.html#ga8c292e142110229a2980b37ab036dbc6',1,'mimalloc-doc.h']]], ['mi_5fregister_5ferror_136',['mi_register_error',['../group__extended.html#gaa1d55e0e894be240827e5d87ec3a1f45',1,'mimalloc-doc.h']]],
['mi_5frezalloc_5faligned',['mi_rezalloc_aligned',['../group__zeroinit.html#gacd71a7bce96aab38ae6de17af2eb2cf0',1,'mimalloc-doc.h']]], ['mi_5fregister_5foutput_137',['mi_register_output',['../group__extended.html#gae5b17ff027cd2150b43a33040250cf3f',1,'mimalloc-doc.h']]],
['mi_5frezalloc_5faligned_5fat',['mi_rezalloc_aligned_at',['../group__zeroinit.html#gae8b358c417e61d5307da002702b0a8e1',1,'mimalloc-doc.h']]], ['mi_5freserve_5fhuge_5fos_5fpages_5fat_138',['mi_reserve_huge_os_pages_at',['../group__extended.html#ga7795a13d20087447281858d2c771cca1',1,'mimalloc-doc.h']]],
['mi_5fsmall_5fsize_5fmax',['MI_SMALL_SIZE_MAX',['../group__extended.html#ga1ea64283508718d9d645c38efc2f4305',1,'mimalloc-doc.h']]], ['mi_5freserve_5fhuge_5fos_5fpages_5finterleave_139',['mi_reserve_huge_os_pages_interleave',['../group__extended.html#ga3132f521fb756fc0e8ec0b74fb58df50',1,'mimalloc-doc.h']]],
['mi_5fstats_5fmerge',['mi_stats_merge',['../group__extended.html#ga854b1de8cb067c7316286c28b2fcd3d1',1,'mimalloc-doc.h']]], ['mi_5freserve_5fos_5fmemory_140',['mi_reserve_os_memory',['../group__extended.html#ga00ec3324b6b2591c7fe3677baa30a767',1,'mimalloc-doc.h']]],
['mi_5fstats_5fprint',['mi_stats_print',['../group__extended.html#ga2d126e5c62d3badc35445e5d84166df2',1,'mimalloc-doc.h']]], ['mi_5frezalloc_141',['mi_rezalloc',['../group__zeroinit.html#ga8c292e142110229a2980b37ab036dbc6',1,'mimalloc-doc.h']]],
['mi_5fstats_5fprint_5fout',['mi_stats_print_out',['../group__extended.html#ga537f13b299ddf801e49a5a94fde02c79',1,'mimalloc-doc.h']]], ['mi_5frezalloc_5faligned_142',['mi_rezalloc_aligned',['../group__zeroinit.html#gacd71a7bce96aab38ae6de17af2eb2cf0',1,'mimalloc-doc.h']]],
['mi_5fstats_5freset',['mi_stats_reset',['../group__extended.html#ga3bb8468b8cfcc6e2a61d98aee85c5f99',1,'mimalloc-doc.h']]], ['mi_5frezalloc_5faligned_5fat_143',['mi_rezalloc_aligned_at',['../group__zeroinit.html#gae8b358c417e61d5307da002702b0a8e1',1,'mimalloc-doc.h']]],
['mi_5fstl_5fallocator',['mi_stl_allocator',['../group__cpp.html#structmi__stl__allocator',1,'']]], ['mi_5fsmall_5fsize_5fmax_144',['MI_SMALL_SIZE_MAX',['../group__extended.html#ga1ea64283508718d9d645c38efc2f4305',1,'mimalloc-doc.h']]],
['mi_5fstrdup',['mi_strdup',['../group__malloc.html#gac7cffe13f1f458ed16789488bf92b9b2',1,'mimalloc-doc.h']]], ['mi_5fstats_5fmerge_145',['mi_stats_merge',['../group__extended.html#ga854b1de8cb067c7316286c28b2fcd3d1',1,'mimalloc-doc.h']]],
['mi_5fstrndup',['mi_strndup',['../group__malloc.html#gaaabf971c2571891433477e2d21a35266',1,'mimalloc-doc.h']]], ['mi_5fstats_5fprint_146',['mi_stats_print',['../group__extended.html#ga2d126e5c62d3badc35445e5d84166df2',1,'mimalloc-doc.h']]],
['mi_5fthread_5fdone',['mi_thread_done',['../group__extended.html#ga0ae4581e85453456a0d658b2b98bf7bf',1,'mimalloc-doc.h']]], ['mi_5fstats_5fprint_5fout_147',['mi_stats_print_out',['../group__extended.html#ga537f13b299ddf801e49a5a94fde02c79',1,'mimalloc-doc.h']]],
['mi_5fthread_5finit',['mi_thread_init',['../group__extended.html#gaf8e73efc2cbca9ebfdfb166983a04c17',1,'mimalloc-doc.h']]], ['mi_5fstats_5freset_148',['mi_stats_reset',['../group__extended.html#ga3bb8468b8cfcc6e2a61d98aee85c5f99',1,'mimalloc-doc.h']]],
['mi_5fthread_5fstats_5fprint_5fout',['mi_thread_stats_print_out',['../group__extended.html#gab1dac8476c46cb9eecab767eb40c1525',1,'mimalloc-doc.h']]], ['mi_5fstl_5fallocator_149',['mi_stl_allocator',['../group__cpp.html#structmi__stl__allocator',1,'']]],
['mi_5fusable_5fsize',['mi_usable_size',['../group__extended.html#ga089c859d9eddc5f9b4bd946cd53cebee',1,'mimalloc-doc.h']]], ['mi_5fstrdup_150',['mi_strdup',['../group__malloc.html#gac7cffe13f1f458ed16789488bf92b9b2',1,'mimalloc-doc.h']]],
['mi_5fvalloc',['mi_valloc',['../group__posix.html#ga73baaf5951f5165ba0763d0c06b6a93b',1,'mimalloc-doc.h']]], ['mi_5fstrndup_151',['mi_strndup',['../group__malloc.html#gaaabf971c2571891433477e2d21a35266',1,'mimalloc-doc.h']]],
['mi_5fzalloc',['mi_zalloc',['../group__malloc.html#gafdd9d8bb2986e668ba9884f28af38000',1,'mimalloc-doc.h']]], ['mi_5fthread_5fdone_152',['mi_thread_done',['../group__extended.html#ga0ae4581e85453456a0d658b2b98bf7bf',1,'mimalloc-doc.h']]],
['mi_5fzalloc_5faligned',['mi_zalloc_aligned',['../group__aligned.html#ga0cadbcf5b89a7b6fb171bc8df8734819',1,'mimalloc-doc.h']]], ['mi_5fthread_5finit_153',['mi_thread_init',['../group__extended.html#gaf8e73efc2cbca9ebfdfb166983a04c17',1,'mimalloc-doc.h']]],
['mi_5fzalloc_5faligned_5fat',['mi_zalloc_aligned_at',['../group__aligned.html#ga5f8c2353766db522565e642fafd8a3f8',1,'mimalloc-doc.h']]], ['mi_5fthread_5fstats_5fprint_5fout_154',['mi_thread_stats_print_out',['../group__extended.html#gab1dac8476c46cb9eecab767eb40c1525',1,'mimalloc-doc.h']]],
['mi_5fzalloc_5fsmall',['mi_zalloc_small',['../group__extended.html#ga220f29f40a44404b0061c15bc1c31152',1,'mimalloc-doc.h']]], ['mi_5fusable_5fsize_155',['mi_usable_size',['../group__extended.html#ga089c859d9eddc5f9b4bd946cd53cebee',1,'mimalloc-doc.h']]],
['mi_5fzalloc_5ftp',['mi_zalloc_tp',['../group__typed.html#gac77a61bdaf680a803785fe307820b48c',1,'mimalloc-doc.h']]] ['mi_5fvalloc_156',['mi_valloc',['../group__posix.html#ga73baaf5951f5165ba0763d0c06b6a93b',1,'mimalloc-doc.h']]],
['mi_5fzalloc_157',['mi_zalloc',['../group__malloc.html#gafdd9d8bb2986e668ba9884f28af38000',1,'mimalloc-doc.h']]],
['mi_5fzalloc_5faligned_158',['mi_zalloc_aligned',['../group__aligned.html#ga0cadbcf5b89a7b6fb171bc8df8734819',1,'mimalloc-doc.h']]],
['mi_5fzalloc_5faligned_5fat_159',['mi_zalloc_aligned_at',['../group__aligned.html#ga5f8c2353766db522565e642fafd8a3f8',1,'mimalloc-doc.h']]],
['mi_5fzalloc_5fsmall_160',['mi_zalloc_small',['../group__extended.html#ga220f29f40a44404b0061c15bc1c31152',1,'mimalloc-doc.h']]],
['mi_5fzalloc_5ftp_161',['mi_zalloc_tp',['../group__typed.html#gac77a61bdaf680a803785fe307820b48c',1,'mimalloc-doc.h']]]
]; ];

View File

@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title> <html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/> <link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_7.js"></script> <script type="text/javascript" src="all_7.js"></script>
<script type="text/javascript" src="search.js"></script> <script type="text/javascript" src="search.js"></script>
@ -10,21 +11,27 @@
<div id="SRIndex"> <div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div> <div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div> <div id="SRResults"></div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults(); createResults();
/* @license-end */ /* @license-end */
--></script> </script>
<div class="SRStatus" id="Searching">Searching...</div> <div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div> <div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none"; document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none"; document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults"); var searchResults = new SearchResults("searchResults");
searchResults.Search(); searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */ /* @license-end */
--></script> </script>
</div> </div>
</body> </body>
</html> </html>

View File

@ -1,4 +1,4 @@
var searchData= var searchData=
[ [
['overriding_20malloc',['Overriding Malloc',['../overrides.html',1,'']]] ['overriding_20malloc_162',['Overriding Malloc',['../overrides.html',1,'']]]
]; ];

View File

@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title> <html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/> <link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_8.js"></script> <script type="text/javascript" src="all_8.js"></script>
<script type="text/javascript" src="search.js"></script> <script type="text/javascript" src="search.js"></script>
@ -10,21 +11,27 @@
<div id="SRIndex"> <div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div> <div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div> <div id="SRResults"></div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults(); createResults();
/* @license-end */ /* @license-end */
--></script> </script>
<div class="SRStatus" id="Searching">Searching...</div> <div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div> <div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none"; document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none"; document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults"); var searchResults = new SearchResults("searchResults");
searchResults.Search(); searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */ /* @license-end */
--></script> </script>
</div> </div>
</body> </body>
</html> </html>

View File

@ -1,5 +1,5 @@
var searchData= var searchData=
[ [
['performance',['Performance',['../bench.html',1,'']]], ['performance_163',['Performance',['../bench.html',1,'']]],
['posix',['Posix',['../group__posix.html',1,'']]] ['posix_164',['Posix',['../group__posix.html',1,'']]]
]; ];

View File

@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title> <html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/> <link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_9.js"></script> <script type="text/javascript" src="all_9.js"></script>
<script type="text/javascript" src="search.js"></script> <script type="text/javascript" src="search.js"></script>
@ -10,21 +11,27 @@
<div id="SRIndex"> <div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div> <div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div> <div id="SRResults"></div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults(); createResults();
/* @license-end */ /* @license-end */
--></script> </script>
<div class="SRStatus" id="Searching">Searching...</div> <div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div> <div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none"; document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none"; document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults"); var searchResults = new SearchResults("searchResults");
searchResults.Search(); searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */ /* @license-end */
--></script> </script>
</div> </div>
</body> </body>
</html> </html>

View File

@ -1,5 +1,5 @@
var searchData= var searchData=
[ [
['runtime_20options',['Runtime Options',['../group__options.html',1,'']]], ['reserved_165',['reserved',['../group__analysis.html#ae848a3e6840414891035423948ca0383',1,'mi_heap_area_t']]],
['reserved',['reserved',['../group__analysis.html#ae848a3e6840414891035423948ca0383',1,'mi_heap_area_t']]] ['runtime_20options_166',['Runtime Options',['../group__options.html',1,'']]]
]; ];

View File

@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title> <html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/> <link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_a.js"></script> <script type="text/javascript" src="all_a.js"></script>
<script type="text/javascript" src="search.js"></script> <script type="text/javascript" src="search.js"></script>
@ -10,21 +11,27 @@
<div id="SRIndex"> <div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div> <div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div> <div id="SRResults"></div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults(); createResults();
/* @license-end */ /* @license-end */
--></script> </script>
<div class="SRStatus" id="Searching">Searching...</div> <div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div> <div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none"; document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none"; document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults"); var searchResults = new SearchResults("searchResults");
searchResults.Search(); searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */ /* @license-end */
--></script> </script>
</div> </div>
</body> </body>
</html> </html>

View File

@ -1,4 +1,4 @@
var searchData= var searchData=
[ [
['typed_20macros',['Typed Macros',['../group__typed.html',1,'']]] ['typed_20macros_167',['Typed Macros',['../group__typed.html',1,'']]]
]; ];

View File

@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title> <html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/> <link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_b.js"></script> <script type="text/javascript" src="all_b.js"></script>
<script type="text/javascript" src="search.js"></script> <script type="text/javascript" src="search.js"></script>
@ -10,21 +11,27 @@
<div id="SRIndex"> <div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div> <div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div> <div id="SRResults"></div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults(); createResults();
/* @license-end */ /* @license-end */
--></script> </script>
<div class="SRStatus" id="Searching">Searching...</div> <div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div> <div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none"; document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none"; document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults"); var searchResults = new SearchResults("searchResults");
searchResults.Search(); searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */ /* @license-end */
--></script> </script>
</div> </div>
</body> </body>
</html> </html>

View File

@ -1,5 +1,5 @@
var searchData= var searchData=
[ [
['used',['used',['../group__analysis.html#ab820302c5cd0df133eb8e51650a008b4',1,'mi_heap_area_t']]], ['used_168',['used',['../group__analysis.html#ab820302c5cd0df133eb8e51650a008b4',1,'mi_heap_area_t']]],
['using_20the_20library',['Using the library',['../using.html',1,'']]] ['using_20the_20library_169',['Using the library',['../using.html',1,'']]]
]; ];

View File

@ -1,7 +1,8 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title> <html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.15"/> <meta name="generator" content="Doxygen 1.9.1"/>
<link rel="stylesheet" type="text/css" href="search.css"/> <link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_c.js"></script> <script type="text/javascript" src="all_c.js"></script>
<script type="text/javascript" src="search.js"></script> <script type="text/javascript" src="search.js"></script>
@ -10,21 +11,27 @@
<div id="SRIndex"> <div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div> <div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div> <div id="SRResults"></div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults(); createResults();
/* @license-end */ /* @license-end */
--></script> </script>
<div class="SRStatus" id="Searching">Searching...</div> <div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div> <div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!-- <script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */ /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none"; document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none"; document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults"); var searchResults = new SearchResults("searchResults");
searchResults.Search(); searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */ /* @license-end */
--></script> </script>
</div> </div>
</body> </body>
</html> </html>

Some files were not shown because too many files have changed in this diff Show More