diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..88aa47d
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,418 @@
+# Nous voulons un cmake "récent" pour utiliser les dernières fonctionnalités.
+cmake_minimum_required(VERSION 3.20)
+set (CMAKE_CXX_STANDARD 23)
+# Nom du projet.
+set(PROJECT CosmicEngine)
+project(${PROJECT})
+
+# Génération de la liste des fichiers sources.
+file(GLOB_RECURSE
+ SRCS_ENGINE
+ src/Engine/*
+)
+
+file(GLOB_RECURSE
+ SRCS
+ src/main.cpp)
+
+file(GLOB_RECURSE
+ SRCS_TESTS
+ test/*
+)
+
+# ---------- Inclusion des packages sous windows -----------
+if(WIN32)
+endif()
+# ---------- Inclusion des packages sous mac -----------
+if(APPLE)
+endif()
+# ---------- Inclusion des packages sous linux -----------
+
+if(UNIX)
+# --------- Inclusion d'OpenGL ----------
+# OpenGL Lib pour charger OpenGL, fournit avec les drivers, donc se trouve toute seul.
+ # find_package(OpenGL REQUIRED)
+ # if(OPENGL_FOUND)
+ # message("lib OpenGL Trouvé")
+ # else()
+ # message("lib OpenGL Introuvable")
+ # endif()
+# ---------------------------------------
+
+# --------- Inclusion de Vulkan ----------
+# Vulkan Lib pour charger Vulkan, fournit avec les drivers, donc se trouve toute seul.
+ # find_package(Vulkan REQUIRED)
+ # if(VULKAN_FOUND)
+ # message("lib OpenGL Trouvé")
+ # else()
+ # message("lib OpenGL Introuvable")
+ # endif()
+# ---------------------------------------
+
+# ---------- Inclusion de GLM -----------
+# GLM Lib pour mathématique, en mode header only.
+ set(GLMlib_DIR ./lib/CMake/Linux)
+ find_package(GLMlib REQUIRED)
+ if(GLMlib_FOUND)
+ message("lib GLM Trouvé")
+ else()
+ message("lib GLM Introuvable")
+ endif()
+# ---------------------------------------
+
+# ------- Inclusion de JSONfMC++ --------
+# JSONfMC++ Lib pour gestion fichier JSON, en mode header only.
+ set(JSONlib_DIR ./lib/CMake/Linux)
+ find_package(JSONlib REQUIRED)
+
+ if(JSONlib_FOUND)
+ message("lib JSONFMC++ Trouvé")
+ else()
+ message("lib JSONFMC++ Introuvable")
+ endif()
+# ---------------------------------------
+
+# ------- Inclusion de EnTT --------
+# EnTT Lib pour gestion fichier JSON, en mode header only.
+ set(EnTTlib_DIR ./lib/CMake/Linux)
+ find_package(EnTTlib REQUIRED)
+
+ if(EnTTlib_FOUND)
+ message("lib EnTTlib Trouvé")
+ else()
+ message("lib EnTTlib Introuvable")
+ endif()
+
+
+# --------- Inclusion de Boost ----------
+# Boost Lib pour diverse simplification
+ # set(Boost_USE_STATIC_LIBS OFF)
+ # set(Boost_USE_MULTITHREADED ON)
+ # set(Boost_USE_STATIC_RUNTIME OFF)
+
+ # find_package(Boost REQUIRED COMPONENTS log_setup log filesystem chrono thread date_time regex) # header only libraries must not be added here
+
+ # message(STATUS "Boost version: ${Boost_VERSION}")
+
+ # if(NOT TARGET Boost::filesystem)
+ # add_library(Boost::filesystem IMPORTED INTERFACE)
+ # set_property(TARGET Boost::filesystem PROPERTY
+ # INTERFACE_INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIR})
+ # set_property(TARGET Boost::filesystem PROPERTY
+ # INTERFACE_LINK_LIBRARIES ${Boost_LIBRARIES})
+ # endif()
+
+ # if(NOT TARGET Boost::thread)
+ # add_library(Boost::thread IMPORTED INTERFACE)
+ # set_property(TARGET Boost::thread PROPERTY
+ # INTERFACE_INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIR})
+ # set_property(TARGET Boost::thread PROPERTY
+ # INTERFACE_LINK_LIBRARIES ${Boost_LIBRARIES})
+ # endif()
+
+ # if(NOT TARGET Boost::chrono)
+ # add_library(Boost::chrono IMPORTED INTERFACE)
+ # set_property(TARGET Boost::chrono PROPERTY
+ # INTERFACE_INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIR})
+ # set_property(TARGET Boost::chrono PROPERTY
+ # INTERFACE_LINK_LIBRARIES ${Boost_LIBRARIES})
+ # endif()
+
+ # if(NOT TARGET Boost::date_time)
+ # add_library(Boost::date_time IMPORTED INTERFACE)
+ # set_property(TARGET Boost::date_time PROPERTY
+ # INTERFACE_INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIR})
+ # set_property(TARGET Boost::date_time PROPERTY
+ # INTERFACE_LINK_LIBRARIES ${Boost_LIBRARIES})
+ # endif()
+
+ # if(NOT TARGET Boost::regex)
+ # add_library(Boost::regex IMPORTED INTERFACE)
+ # set_property(TARGET Boost::regex PROPERTY
+ # INTERFACE_INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIR})
+ # set_property(TARGET Boost::regex PROPERTY
+ # INTERFACE_LINK_LIBRARIES ${Boost_LIBRARIES})
+ # endif()
+
+ # if(NOT TARGET Boost::log)
+ # add_library(Boost::log IMPORTED INTERFACE)
+ # set_property(TARGET Boost::log PROPERTY
+ # INTERFACE_INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIR})
+ # set_property(TARGET Boost::log PROPERTY
+ # INTERFACE_LINK_LIBRARIES ${Boost_LIBRARIES})
+ # endif()
+
+ # if(NOT TARGET Boost::log_setup)
+ # add_library(Boost::log_setup IMPORTED INTERFACE)
+ # set_property(TARGET Boost::log_setup PROPERTY
+ # INTERFACE_INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIR})
+ # set_property(TARGET Boost::log_setup PROPERTY
+ # INTERFACE_LINK_LIBRARIES ${Boost_LIBRARIES})
+ # endif()
+
+ # if(Boost_FOUND)
+ # message("lib Boost Trouvé")
+ # else()
+ # message("lib Boost Introuvable")
+ # endif()
+# ---------------------------------------
+
+# -------- Inclusion de la SDL2 ----------
+# SDL2 Lib pour fenetre et contrôle
+
+# Les autre plateforme (Linux...) ont un installateur de paquet, la lib se trouve toute seul.
+ # find_package(SDL2 REQUIRED)
+ # if(SDL2_FOUND)
+ # message("lib SDL2 Trouvé")
+ # else()
+ # message("lib SDL2 Introuvable")
+ # endif()
+# ---------------------------------------
+
+# ------- Inclusion de SDL2_IMAGE --------
+# SDL2_IMAGE Lib pour charger une image
+ # Les autre plateforme (Linux...) ont un installateur de paquet, la lib se trouve toute seul.
+ # find_package(SDL2_image QUIET)
+ # #find_library(SDL2_image libSDL2_image)
+
+ # if(SDL2_image_FOUND)
+ # message("lib SDL2_IMAGE Trouvé")
+ # else()
+ # message("lib SDL2_IMAGE Introuvable")
+ # endif()
+# ---------------------------------------
+
+# ------- Inclusion de SDL2_TTF --------
+# SDL2_IMAGE Lib pour charger une police d'écriture.
+ # set(SDL2_ttf_DIR ./lib/CMake/Linux)
+ # # Les autre plateforme (Linux...) ont un installateur de paquet, la lib se trouve toute seul.
+ # find_package(SDL2_ttf QUIET)
+ # #find_library(SDL2_ttf libSDL2_ttf)
+ # if(SDL2_ttf_FOUND)
+ # message("lib SDL2_TTF Trouvé")
+ # else()
+ # message("lib SDL2_TTF Introuvable")
+ # endif()
+# ---------------------------------------
+
+# --------- Inclusion de GLEW -----------
+# GLEW Lib pour charger utiliser OpenGL + extension
+ # Les autre plateforme (Linux...) ont un installateur de paquet, la lib se trouve toute seul.
+ # find_package(GLEW REQUIRED)
+ # if(GLEW_FOUND)
+ # message("lib GLEW Trouvé")
+ # else()
+ # message("lib GLEW Introuvable")
+ # endif()
+# ---------------------------------------
+
+# ---------- Inclusion de ASSIMP -----------
+# Assimp Lib import modèles 3D.
+ # find_package(assimp REQUIRED)
+ # if(assimp_FOUND)
+ # message("lib ASSIMP Trouvé")
+ # else()
+ # message("lib ASSIMP Introuvable")
+ # endif()
+# ---------------------------------------
+
+# ---------- Inclusion de ODE -----------
+# ODE Lib Moteur physique.
+ # set(ODE_DIR ./lib/CMake/Linux)
+ # # Les autre plateforme (Linux...) ont un installateur de paquet, la lib se trouve toute seul.
+ # find_package(ODE REQUIRED)
+ # if(ODE_FOUND)
+ # message("lib ODE Trouvé")
+ # else()
+ # message("lib ODE Introuvable")
+ # endif()
+# ---------------------------------------
+
+# --------- Inclusion de SNDFILE ----------
+# SNDFILE Lib pour inclure le son.
+ # Les autre plateforme (Linux...) ont un installateur de paquet, la lib se trouve toute seul.
+ #set(SNDFILE_DIR ./lib/CMake/Linux)
+ # find_package(sndfile QUIET)#TODO corrige
+ # #find_library(sndfile libsndfile)
+ # if(sndfile_FOUND)
+ # message("lib SNDFILE Trouvé")
+ # else()
+ # message("lib SNDFILE Introuvable")
+ # endif()
+# ---------------------------------------
+
+# ---------- Inclusion de OpenAL-----------
+# OpenAL Lib gérer le son.
+ # Les autre plateforme (Linux...) ont un installateur de paquet, la lib se trouve toute seul.
+ # set(OPENAL_DIR ./lib/CMake/Linux)
+ # find_package(OPENAL REQUIRED)
+
+ # if(OPENAL_FOUND)
+ # message("lib OpenAL Trouvé")
+ # else()
+ # message("lib OpenAL Introuvable")
+ # endif()
+# ---------------------------------------
+
+# ---------- Inclusion de Catch2-----------
+# Gestion des tests unitaires
+
+find_package(Catch2 3 REQUIRED)
+# These tests can use the Catch2-provided main
+if(Catch2_found)
+ message("lib Catch2 Trouvé")
+else()
+ message("lib Catch2 Introuvable")
+endif()
+
+endif()
+# Chemin executable
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "bin/${CMAKE_BUILD_TYPE}")
+
+# On indique que l'on veut un exécutable nommé PROJECT compilé à partir des fichiers décrits par les variables SRCS et HEADERS.
+
+add_library(Engine SHARED ${SRCS_ENGINE} ${SRCS_EXTERNAL_GLAD})
+add_executable(${PROJECT} ${SRCS})
+add_dependencies(${PROJECT} Engine)
+
+add_executable(CosmicTest ${SRCS_TESTS})
+target_link_libraries(CosmicTest PRIVATE Catch2::Catch2WithMain Engine)
+
+# Fichier include
+# OpenGL
+#include_directories(${OPENGL_INCLUDE_DIR})
+# SDL2
+#include_directories(${SDL2_INCLUDE_DIRS})
+# GLEW
+#include_directories(${GLEW_INCLUDE_DIRS})
+# SDL2_image
+#include_directories(${SDL2_IMAGE_INCLUDE_DIRS})
+# SDL2_ttf
+#include_directories(${SDL2_TTF_INCLUDE_DIRS})
+# GLM
+include_directories(${GLM_INCLUDE_DIRS})
+# JSONFMCPP
+include_directories(${JSONFMCPP_INCLUDE_DIRS})
+#ENTT
+include_directories(${ENTT_INCLUDE_DIRS})
+
+# ASSIMP
+#include_directories(${ASSIMP_INCLUDE_DIRS})
+# ODE
+#include_directories(${ODE_INCLUDE_DIRS})
+# SNDFILE
+#include_directories(${SNDFILE_INCLUDE_DIRS})
+# OPENAL
+#include_directories(${OPENAL_INCLUDE_DIRS})
+
+# Fichier lib
+# OpenGL
+#target_link_libraries(Engine OpenMP::OpenMP_CXX)
+
+# OpenMP
+#target_link_libraries(Engine ${OPENGL_LIBRARIES})
+
+# SDL2
+#target_link_libraries(Engine ${SDL2_LIBRARIES})
+
+# GLEW
+#target_link_libraries(Engine ${GLEW_LIBRARIES})
+
+# SDL2_image
+#target_link_libraries(Engine SDL2_image)
+
+# SDL2_ttf
+#target_link_libraries(Engine SDL2_ttf)
+
+# Boost
+
+
+# ASSIMP
+#target_link_libraries(Engine ${ASSIMP_LIBRARIES})
+
+
+# ODE
+#target_link_libraries(Engine ${ODE_LIBRARIES})
+
+# SNDFILE
+#target_link_libraries(Engine sndfile)
+
+# OPENAL
+#target_link_libraries(Engine ${OPENAL_LIBRARIES})
+
+
+#target_link_libraries(Engine ${CMAKE_DL_LIBS})
+
+#target_link_libraries(${PROJECT} ${CMAKE_DL_LIBS})
+
+
+# Boost
+# target_link_libraries(Engine Boost::boost)
+# target_link_libraries(Engine Boost::filesystem)
+# target_link_libraries(Engine Boost::chrono)
+# target_link_libraries(Engine Boost::thread)
+# target_link_libraries(Engine Boost::date_time)
+# target_link_libraries(Engine Boost::regex)
+# target_link_libraries(Engine Boost::log)
+# target_link_libraries(Engine Boost::log_setup)
+
+target_link_libraries(${PROJECT} Engine)
+
+if(UNIX)
+add_custom_command(
+ TARGET Engine POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy
+ ${CMAKE_CURRENT_BINARY_DIR}/libEngine.so
+ ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
+endif()
+
+# Paramètre de compilation
+if (UNIX)
+ set(CMAKE_CXX_FLAGS "-Wall -ldl -fPIC")
+endif ()
+
+# Valgrind ne marche que pour Linux...
+if (UNIX)
+ add_custom_target("valgrind"
+ COMMAND ${CMAKE_CTEST_COMMAND}
+ --force-new-ctest-process --test-action memcheck
+ COMMAND cat "${CMAKE_BINARY_DIR}/Testing/Temporary/MemoryChecker.*.log")
+endif()
+
+# Doxygen
+# check if Doxygen is installed
+find_package(Doxygen)
+if (DOXYGEN_FOUND)
+ # set input and output files
+ set(DOXYGEN_IN ${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in)
+ set(DOXYGEN_OUT ${CMAKE_CURRENT_BINARY_DIR}/doc/Doxyfile)
+
+ # request to configure the file
+ configure_file(${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY)
+ message("Doxygen build started")
+
+ # note the option ALL which allows to build the docs together with the application
+ add_custom_target("doxygen"
+ COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMENT "Generating API documentation with Doxygen"
+ VERBATIM)
+else()
+ message("Doxygen need to be installed to generate the doxygen documentation")
+endif()
+
+foreach(source IN LISTS SRCS_ENGINE)
+ get_filename_component(source_path "${source}" PATH)
+ STRING(REGEX REPLACE "${CMAKE_CURRENT_SOURCE_DIR}" "" source_path ${source_path})
+ string(REPLACE "/" "\\" source_path_msvc "${source_path}")
+ source_group("${source_path_msvc}" FILES "${source}")
+endforeach()
+
+foreach(source IN LISTS SRCS)
+ get_filename_component(source_path "${source}" PATH)
+ STRING(REGEX REPLACE "${CMAKE_CURRENT_SOURCE_DIR}" "" source_path ${source_path})
+ string(REPLACE "/" "\\" source_path_msvc "${source_path}")
+ source_group("${source_path_msvc}" FILES "${source}")
+endforeach()
+
+message(STATUS "Tree reorganized")
\ No newline at end of file
diff --git a/assets/475uja.jpg b/assets/475uja.jpg
new file mode 100644
index 0000000..1a7cbf5
Binary files /dev/null and b/assets/475uja.jpg differ
diff --git a/assets/F.O.O.L - Criminals.ogg b/assets/F.O.O.L - Criminals.ogg
new file mode 100644
index 0000000..4c19563
Binary files /dev/null and b/assets/F.O.O.L - Criminals.ogg differ
diff --git a/assets/QTForms/EditorWindow.ui b/assets/QTForms/EditorWindow.ui
new file mode 100644
index 0000000..a27f696
--- /dev/null
+++ b/assets/QTForms/EditorWindow.ui
@@ -0,0 +1,199 @@
+
+
+ EditorWindow
+
+
+
+ 0
+ 0
+ 800
+ 600
+
+
+
+ CosmicEngine Editor
+
+
+
+
+
+ 0
+ 0
+ 211
+ 431
+
+
+
+ 1
+
+
+
+
+ 0
+ 0
+ 211
+ 377
+
+
+
+ Scene
+
+
+
+
+
+ 0
+ 0
+ 211
+ 377
+
+
+
+ Entities
+
+
+
+
+
+
+ 220
+ 0
+ 361
+ 351
+
+
+
+
+
+
+ 590
+ 0
+ 211
+ 431
+
+
+
+ 1
+
+
+
+
+ 0
+ 0
+ 211
+ 377
+
+
+
+ Models
+
+
+
+
+
+ 0
+ 0
+ 211
+ 377
+
+
+
+ Shaders
+
+
+
+
+
+
+ 10
+ 450
+ 781
+ 101
+
+
+
+ Qt::ScrollBarAsNeeded
+
+
+ 1
+
+
+
+
+
+ 220
+ 380
+ 75
+ 23
+
+
+
+ Play
+
+
+
+
+
+ 360
+ 380
+ 75
+ 23
+
+
+
+ Stop
+
+
+
+
+
+ 500
+ 380
+ 75
+ 23
+
+
+
+ Reset
+
+
+
+
+
+
+
+
+
diff --git a/assets/QTForms/EditorWindowWidg.ui b/assets/QTForms/EditorWindowWidg.ui
new file mode 100644
index 0000000..ae807e6
--- /dev/null
+++ b/assets/QTForms/EditorWindowWidg.ui
@@ -0,0 +1,199 @@
+
+
+ m_editorWindow
+
+
+
+ 0
+ 0
+ 800
+ 600
+
+
+
+ CosmicEngine Editor
+
+
+
+
+
+ 0
+ 0
+ 211
+ 431
+
+
+
+ 1
+
+
+
+
+ 0
+ 0
+ 100
+ 30
+
+
+
+ Scene
+
+
+
+
+
+ 0
+ 0
+ 211
+ 377
+
+
+
+ Entities
+
+
+
+
+
+
+ 590
+ 0
+ 211
+ 431
+
+
+
+ 1
+
+
+
+
+ 0
+ 0
+ 100
+ 30
+
+
+
+ Models
+
+
+
+
+
+ 0
+ 0
+ 211
+ 377
+
+
+
+ Shaders
+
+
+
+
+
+
+ 10
+ 450
+ 781
+ 101
+
+
+
+ Qt::ScrollBarAsNeeded
+
+
+ 1
+
+
+
+
+
+ 220
+ 380
+ 75
+ 23
+
+
+
+ Play
+
+
+
+
+
+ 360
+ 380
+ 75
+ 23
+
+
+
+ Stop
+
+
+
+
+
+ 500
+ 380
+ 75
+ 23
+
+
+
+ Reset
+
+
+
+
+
+ 210
+ 0
+ 381
+ 351
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/ccccc.png b/assets/ccccc.png
new file mode 100644
index 0000000..ee8d27c
Binary files /dev/null and b/assets/ccccc.png differ
diff --git a/assets/configs/config.json b/assets/configs/config.json
new file mode 100644
index 0000000..37f347b
--- /dev/null
+++ b/assets/configs/config.json
@@ -0,0 +1,15 @@
+{
+ "config": {
+ "video": {
+ "windowedHeight": 360,
+ "windowedWidth": 640,
+ "fullscreenHeight": 1080,
+ "fullscreenWidth": 1920,
+ "fullscreenSizeAuto": false,
+ "fullscreen": true,
+ "msaa": 16,
+ "vSync": 1,
+ "framerate": 60
+ }
+ }
+}
\ No newline at end of file
diff --git a/assets/exotique-1_0.jpg b/assets/exotique-1_0.jpg
new file mode 100644
index 0000000..92e44c3
Binary files /dev/null and b/assets/exotique-1_0.jpg differ
diff --git a/assets/fonts/arial.ttf b/assets/fonts/arial.ttf
new file mode 100644
index 0000000..12cc15c
Binary files /dev/null and b/assets/fonts/arial.ttf differ
diff --git a/assets/icons/spaceEngine.png b/assets/icons/spaceEngine.png
new file mode 100644
index 0000000..a7208a1
Binary files /dev/null and b/assets/icons/spaceEngine.png differ
diff --git a/assets/models/cone.mtl b/assets/models/cone.mtl
new file mode 100644
index 0000000..ee30f7a
--- /dev/null
+++ b/assets/models/cone.mtl
@@ -0,0 +1,12 @@
+# Blender MTL File: 'None'
+# Material Count: 1
+
+newmtl Material.003
+Ns 323.999994
+Ka 1.000000 1.000000 1.000000
+Kd 0.800000 0.000000 0.587194
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.000000
+d 1.000000
+illum 2
diff --git a/assets/models/cone.obj b/assets/models/cone.obj
new file mode 100644
index 0000000..5370005
--- /dev/null
+++ b/assets/models/cone.obj
@@ -0,0 +1,170 @@
+# Blender v2.90.1 OBJ File: ''
+# www.blender.org
+mtllib cone.mtl
+o Cone
+v 0.000000 -1.000000 -1.000000
+v 0.195090 -1.000000 -0.980785
+v 0.382683 -1.000000 -0.923880
+v 0.555570 -1.000000 -0.831470
+v 0.707107 -1.000000 -0.707107
+v 0.831470 -1.000000 -0.555570
+v 0.923880 -1.000000 -0.382683
+v 0.980785 -1.000000 -0.195090
+v 1.000000 -1.000000 -0.000000
+v 0.980785 -1.000000 0.195090
+v 0.923880 -1.000000 0.382683
+v 0.831470 -1.000000 0.555570
+v 0.707107 -1.000000 0.707107
+v 0.555570 -1.000000 0.831470
+v 0.382683 -1.000000 0.923880
+v 0.195090 -1.000000 0.980785
+v -0.000000 -1.000000 1.000000
+v -0.195091 -1.000000 0.980785
+v -0.382684 -1.000000 0.923879
+v -0.555571 -1.000000 0.831469
+v -0.707107 -1.000000 0.707106
+v -0.831470 -1.000000 0.555570
+v -0.923880 -1.000000 0.382683
+v -0.980785 -1.000000 0.195089
+v -1.000000 -1.000000 -0.000001
+v -0.980785 -1.000000 -0.195091
+v -0.923879 -1.000000 -0.382684
+v -0.831469 -1.000000 -0.555571
+v -0.707106 -1.000000 -0.707108
+v -0.555569 -1.000000 -0.831470
+v -0.382682 -1.000000 -0.923880
+v -0.195089 -1.000000 -0.980786
+v 0.000000 1.000000 0.000000
+vt 0.250000 0.490000
+vt 0.250000 0.250000
+vt 0.296822 0.485388
+vt 0.341844 0.471731
+vt 0.383337 0.449553
+vt 0.419706 0.419706
+vt 0.449553 0.383337
+vt 0.471731 0.341844
+vt 0.485388 0.296822
+vt 0.490000 0.250000
+vt 0.485388 0.203178
+vt 0.471731 0.158156
+vt 0.449553 0.116663
+vt 0.419706 0.080294
+vt 0.383337 0.050447
+vt 0.341844 0.028269
+vt 0.296822 0.014612
+vt 0.250000 0.010000
+vt 0.203178 0.014612
+vt 0.158156 0.028269
+vt 0.116663 0.050447
+vt 0.080294 0.080294
+vt 0.050447 0.116663
+vt 0.028269 0.158156
+vt 0.014611 0.203179
+vt 0.010000 0.250000
+vt 0.014612 0.296822
+vt 0.028269 0.341844
+vt 0.050447 0.383337
+vt 0.080295 0.419706
+vt 0.116663 0.449553
+vt 0.158156 0.471731
+vt 0.750000 0.490000
+vt 0.796822 0.485388
+vt 0.841844 0.471731
+vt 0.883337 0.449553
+vt 0.919706 0.419706
+vt 0.949553 0.383337
+vt 0.971731 0.341844
+vt 0.985388 0.296822
+vt 0.990000 0.250000
+vt 0.985388 0.203178
+vt 0.971731 0.158156
+vt 0.949553 0.116663
+vt 0.919706 0.080294
+vt 0.883337 0.050447
+vt 0.841844 0.028269
+vt 0.796822 0.014612
+vt 0.750000 0.010000
+vt 0.703178 0.014612
+vt 0.658156 0.028269
+vt 0.616663 0.050447
+vt 0.580294 0.080294
+vt 0.550447 0.116663
+vt 0.528269 0.158156
+vt 0.514611 0.203179
+vt 0.510000 0.250000
+vt 0.514612 0.296822
+vt 0.528269 0.341844
+vt 0.550447 0.383337
+vt 0.580295 0.419706
+vt 0.616663 0.449553
+vt 0.658156 0.471731
+vt 0.703179 0.485389
+vt 0.203179 0.485389
+vn 0.0878 0.4455 -0.8910
+vn 0.2599 0.4455 -0.8567
+vn 0.4220 0.4455 -0.7896
+vn 0.5680 0.4455 -0.6921
+vn 0.6921 0.4455 -0.5680
+vn 0.7896 0.4455 -0.4220
+vn 0.8567 0.4455 -0.2599
+vn 0.8910 0.4455 -0.0878
+vn 0.8910 0.4455 0.0878
+vn 0.8567 0.4455 0.2599
+vn 0.7896 0.4455 0.4220
+vn 0.6921 0.4455 0.5680
+vn 0.5680 0.4455 0.6921
+vn 0.4220 0.4455 0.7896
+vn 0.2599 0.4455 0.8567
+vn 0.0878 0.4455 0.8910
+vn -0.0878 0.4455 0.8910
+vn -0.2599 0.4455 0.8567
+vn -0.4220 0.4455 0.7896
+vn -0.5680 0.4455 0.6921
+vn -0.6921 0.4455 0.5680
+vn -0.7896 0.4455 0.4220
+vn -0.8567 0.4455 0.2599
+vn -0.8910 0.4455 0.0878
+vn -0.8910 0.4455 -0.0878
+vn -0.8567 0.4455 -0.2599
+vn -0.7896 0.4455 -0.4220
+vn -0.6921 0.4455 -0.5680
+vn -0.5680 0.4455 -0.6921
+vn -0.4220 0.4455 -0.7896
+vn 0.0000 -1.0000 -0.0000
+vn -0.2599 0.4455 -0.8567
+vn -0.0878 0.4455 -0.8910
+usemtl Material.003
+s off
+f 1/1/1 33/2/1 2/3/1
+f 2/3/2 33/2/2 3/4/2
+f 3/4/3 33/2/3 4/5/3
+f 4/5/4 33/2/4 5/6/4
+f 5/6/5 33/2/5 6/7/5
+f 6/7/6 33/2/6 7/8/6
+f 7/8/7 33/2/7 8/9/7
+f 8/9/8 33/2/8 9/10/8
+f 9/10/9 33/2/9 10/11/9
+f 10/11/10 33/2/10 11/12/10
+f 11/12/11 33/2/11 12/13/11
+f 12/13/12 33/2/12 13/14/12
+f 13/14/13 33/2/13 14/15/13
+f 14/15/14 33/2/14 15/16/14
+f 15/16/15 33/2/15 16/17/15
+f 16/17/16 33/2/16 17/18/16
+f 17/18/17 33/2/17 18/19/17
+f 18/19/18 33/2/18 19/20/18
+f 19/20/19 33/2/19 20/21/19
+f 20/21/20 33/2/20 21/22/20
+f 21/22/21 33/2/21 22/23/21
+f 22/23/22 33/2/22 23/24/22
+f 23/24/23 33/2/23 24/25/23
+f 24/25/24 33/2/24 25/26/24
+f 25/26/25 33/2/25 26/27/25
+f 26/27/26 33/2/26 27/28/26
+f 27/28/27 33/2/27 28/29/27
+f 28/29/28 33/2/28 29/30/28
+f 29/30/29 33/2/29 30/31/29
+f 30/31/30 33/2/30 31/32/30
+f 1/33/31 2/34/31 3/35/31 4/36/31 5/37/31 6/38/31 7/39/31 8/40/31 9/41/31 10/42/31 11/43/31 12/44/31 13/45/31 14/46/31 15/47/31 16/48/31 17/49/31 18/50/31 19/51/31 20/52/31 21/53/31 22/54/31 23/55/31 24/56/31 25/57/31 26/58/31 27/59/31 28/60/31 29/61/31 30/62/31 31/63/31 32/64/31
+f 31/32/32 33/2/32 32/65/32
+f 32/65/33 33/2/33 1/1/33
diff --git a/assets/models/cube.mtl b/assets/models/cube.mtl
new file mode 100644
index 0000000..da5b726
--- /dev/null
+++ b/assets/models/cube.mtl
@@ -0,0 +1,12 @@
+# Blender MTL File: 'None'
+# Material Count: 1
+
+newmtl Material
+Ns 323.999994
+Ka 1.000000 1.000000 1.000000
+Kd 0.017824 0.005779 0.800000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.000000
+d 1.000000
+illum 2
diff --git a/assets/models/cube.obj b/assets/models/cube.obj
new file mode 100644
index 0000000..50c1497
--- /dev/null
+++ b/assets/models/cube.obj
@@ -0,0 +1,40 @@
+# Blender v2.90.1 OBJ File: ''
+# www.blender.org
+mtllib cube.mtl
+o Cube
+v 1.000000 1.000000 -1.000000
+v 1.000000 -1.000000 -1.000000
+v 1.000000 1.000000 1.000000
+v 1.000000 -1.000000 1.000000
+v -1.000000 1.000000 -1.000000
+v -1.000000 -1.000000 -1.000000
+v -1.000000 1.000000 1.000000
+v -1.000000 -1.000000 1.000000
+vt 0.625000 0.500000
+vt 0.875000 0.500000
+vt 0.875000 0.750000
+vt 0.625000 0.750000
+vt 0.375000 0.750000
+vt 0.625000 1.000000
+vt 0.375000 1.000000
+vt 0.375000 0.000000
+vt 0.625000 0.000000
+vt 0.625000 0.250000
+vt 0.375000 0.250000
+vt 0.125000 0.500000
+vt 0.375000 0.500000
+vt 0.125000 0.750000
+vn 0.0000 1.0000 0.0000
+vn 0.0000 0.0000 1.0000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 -1.0000 0.0000
+vn 1.0000 0.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+usemtl Material
+s off
+f 1/1/1 5/2/1 7/3/1 3/4/1
+f 4/5/2 3/4/2 7/6/2 8/7/2
+f 8/8/3 7/9/3 5/10/3 6/11/3
+f 6/12/4 2/13/4 4/5/4 8/14/4
+f 2/13/5 1/1/5 3/4/5 4/5/5
+f 6/11/6 5/10/6 1/1/6 2/13/6
diff --git a/assets/models/cylindre.mtl b/assets/models/cylindre.mtl
new file mode 100644
index 0000000..15bfaa8
--- /dev/null
+++ b/assets/models/cylindre.mtl
@@ -0,0 +1,12 @@
+# Blender MTL File: 'None'
+# Material Count: 1
+
+newmtl Material.002
+Ns 323.999994
+Ka 1.000000 1.000000 1.000000
+Kd 0.800000 0.000000 0.002363
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.000000
+d 1.000000
+illum 2
diff --git a/assets/models/cylindre.obj b/assets/models/cylindre.obj
new file mode 100644
index 0000000..ad4b1c9
--- /dev/null
+++ b/assets/models/cylindre.obj
@@ -0,0 +1,268 @@
+# Blender v2.90.1 OBJ File: ''
+# www.blender.org
+mtllib cylindre.mtl
+o Cylinder
+v 0.000000 -1.000000 -1.000000
+v 0.000000 1.000000 -1.000000
+v 0.195090 -1.000000 -0.980785
+v 0.195090 1.000000 -0.980785
+v 0.382683 -1.000000 -0.923880
+v 0.382683 1.000000 -0.923880
+v 0.555570 -1.000000 -0.831470
+v 0.555570 1.000000 -0.831470
+v 0.707107 -1.000000 -0.707107
+v 0.707107 1.000000 -0.707107
+v 0.831470 -1.000000 -0.555570
+v 0.831470 1.000000 -0.555570
+v 0.923880 -1.000000 -0.382683
+v 0.923880 1.000000 -0.382683
+v 0.980785 -1.000000 -0.195090
+v 0.980785 1.000000 -0.195090
+v 1.000000 -1.000000 -0.000000
+v 1.000000 1.000000 -0.000000
+v 0.980785 -1.000000 0.195090
+v 0.980785 1.000000 0.195090
+v 0.923880 -1.000000 0.382683
+v 0.923880 1.000000 0.382683
+v 0.831470 -1.000000 0.555570
+v 0.831470 1.000000 0.555570
+v 0.707107 -1.000000 0.707107
+v 0.707107 1.000000 0.707107
+v 0.555570 -1.000000 0.831470
+v 0.555570 1.000000 0.831470
+v 0.382683 -1.000000 0.923880
+v 0.382683 1.000000 0.923880
+v 0.195090 -1.000000 0.980785
+v 0.195090 1.000000 0.980785
+v -0.000000 -1.000000 1.000000
+v -0.000000 1.000000 1.000000
+v -0.195091 -1.000000 0.980785
+v -0.195091 1.000000 0.980785
+v -0.382684 -1.000000 0.923879
+v -0.382684 1.000000 0.923879
+v -0.555571 -1.000000 0.831469
+v -0.555571 1.000000 0.831469
+v -0.707107 -1.000000 0.707106
+v -0.707107 1.000000 0.707106
+v -0.831470 -1.000000 0.555570
+v -0.831470 1.000000 0.555570
+v -0.923880 -1.000000 0.382683
+v -0.923880 1.000000 0.382683
+v -0.980785 -1.000000 0.195089
+v -0.980785 1.000000 0.195089
+v -1.000000 -1.000000 -0.000001
+v -1.000000 1.000000 -0.000001
+v -0.980785 -1.000000 -0.195091
+v -0.980785 1.000000 -0.195091
+v -0.923879 -1.000000 -0.382684
+v -0.923879 1.000000 -0.382684
+v -0.831469 -1.000000 -0.555571
+v -0.831469 1.000000 -0.555571
+v -0.707106 -1.000000 -0.707108
+v -0.707106 1.000000 -0.707108
+v -0.555569 -1.000000 -0.831470
+v -0.555569 1.000000 -0.831470
+v -0.382682 -1.000000 -0.923880
+v -0.382682 1.000000 -0.923880
+v -0.195089 -1.000000 -0.980786
+v -0.195089 1.000000 -0.980786
+vt 1.000000 0.500000
+vt 1.000000 1.000000
+vt 0.968750 1.000000
+vt 0.968750 0.500000
+vt 0.937500 1.000000
+vt 0.937500 0.500000
+vt 0.906250 1.000000
+vt 0.906250 0.500000
+vt 0.875000 1.000000
+vt 0.875000 0.500000
+vt 0.843750 1.000000
+vt 0.843750 0.500000
+vt 0.812500 1.000000
+vt 0.812500 0.500000
+vt 0.781250 1.000000
+vt 0.781250 0.500000
+vt 0.750000 1.000000
+vt 0.750000 0.500000
+vt 0.718750 1.000000
+vt 0.718750 0.500000
+vt 0.687500 1.000000
+vt 0.687500 0.500000
+vt 0.656250 1.000000
+vt 0.656250 0.500000
+vt 0.625000 1.000000
+vt 0.625000 0.500000
+vt 0.593750 1.000000
+vt 0.593750 0.500000
+vt 0.562500 1.000000
+vt 0.562500 0.500000
+vt 0.531250 1.000000
+vt 0.531250 0.500000
+vt 0.500000 1.000000
+vt 0.500000 0.500000
+vt 0.468750 1.000000
+vt 0.468750 0.500000
+vt 0.437500 1.000000
+vt 0.437500 0.500000
+vt 0.406250 1.000000
+vt 0.406250 0.500000
+vt 0.375000 1.000000
+vt 0.375000 0.500000
+vt 0.343750 1.000000
+vt 0.343750 0.500000
+vt 0.312500 1.000000
+vt 0.312500 0.500000
+vt 0.281250 1.000000
+vt 0.281250 0.500000
+vt 0.250000 1.000000
+vt 0.250000 0.500000
+vt 0.218750 1.000000
+vt 0.218750 0.500000
+vt 0.187500 1.000000
+vt 0.187500 0.500000
+vt 0.156250 1.000000
+vt 0.156250 0.500000
+vt 0.125000 1.000000
+vt 0.125000 0.500000
+vt 0.093750 1.000000
+vt 0.093750 0.500000
+vt 0.062500 1.000000
+vt 0.062500 0.500000
+vt 0.296822 0.485388
+vt 0.250000 0.490000
+vt 0.203179 0.485389
+vt 0.158156 0.471731
+vt 0.116663 0.449553
+vt 0.080295 0.419706
+vt 0.050447 0.383337
+vt 0.028269 0.341844
+vt 0.014612 0.296822
+vt 0.010000 0.250000
+vt 0.014611 0.203179
+vt 0.028269 0.158156
+vt 0.050447 0.116663
+vt 0.080294 0.080294
+vt 0.116663 0.050447
+vt 0.158156 0.028269
+vt 0.203178 0.014612
+vt 0.250000 0.010000
+vt 0.296822 0.014612
+vt 0.341844 0.028269
+vt 0.383337 0.050447
+vt 0.419706 0.080294
+vt 0.449553 0.116663
+vt 0.471731 0.158156
+vt 0.485388 0.203178
+vt 0.490000 0.250000
+vt 0.485388 0.296822
+vt 0.471731 0.341844
+vt 0.449553 0.383337
+vt 0.419706 0.419706
+vt 0.383337 0.449553
+vt 0.341844 0.471731
+vt 0.031250 1.000000
+vt 0.031250 0.500000
+vt 0.000000 1.000000
+vt 0.000000 0.500000
+vt 0.750000 0.490000
+vt 0.796822 0.485388
+vt 0.841844 0.471731
+vt 0.883337 0.449553
+vt 0.919706 0.419706
+vt 0.949553 0.383337
+vt 0.971731 0.341844
+vt 0.985388 0.296822
+vt 0.990000 0.250000
+vt 0.985388 0.203178
+vt 0.971731 0.158156
+vt 0.949553 0.116663
+vt 0.919706 0.080294
+vt 0.883337 0.050447
+vt 0.841844 0.028269
+vt 0.796822 0.014612
+vt 0.750000 0.010000
+vt 0.703178 0.014612
+vt 0.658156 0.028269
+vt 0.616663 0.050447
+vt 0.580294 0.080294
+vt 0.550447 0.116663
+vt 0.528269 0.158156
+vt 0.514611 0.203179
+vt 0.510000 0.250000
+vt 0.514612 0.296822
+vt 0.528269 0.341844
+vt 0.550447 0.383337
+vt 0.580295 0.419706
+vt 0.616663 0.449553
+vt 0.658156 0.471731
+vt 0.703179 0.485389
+vn 0.0980 0.0000 -0.9952
+vn 0.2903 0.0000 -0.9569
+vn 0.4714 0.0000 -0.8819
+vn 0.6344 0.0000 -0.7730
+vn 0.7730 0.0000 -0.6344
+vn 0.8819 0.0000 -0.4714
+vn 0.9569 0.0000 -0.2903
+vn 0.9952 0.0000 -0.0980
+vn 0.9952 0.0000 0.0980
+vn 0.9569 0.0000 0.2903
+vn 0.8819 0.0000 0.4714
+vn 0.7730 0.0000 0.6344
+vn 0.6344 0.0000 0.7730
+vn 0.4714 0.0000 0.8819
+vn 0.2903 0.0000 0.9569
+vn 0.0980 0.0000 0.9952
+vn -0.0980 0.0000 0.9952
+vn -0.2903 0.0000 0.9569
+vn -0.4714 0.0000 0.8819
+vn -0.6344 0.0000 0.7730
+vn -0.7730 0.0000 0.6344
+vn -0.8819 0.0000 0.4714
+vn -0.9569 0.0000 0.2903
+vn -0.9952 0.0000 0.0980
+vn -0.9952 0.0000 -0.0980
+vn -0.9569 0.0000 -0.2903
+vn -0.8819 0.0000 -0.4714
+vn -0.7730 0.0000 -0.6344
+vn -0.6344 0.0000 -0.7730
+vn -0.4714 0.0000 -0.8819
+vn 0.0000 1.0000 0.0000
+vn -0.2903 0.0000 -0.9569
+vn -0.0980 0.0000 -0.9952
+vn 0.0000 -1.0000 -0.0000
+usemtl Material.002
+s off
+f 1/1/1 2/2/1 4/3/1 3/4/1
+f 3/4/2 4/3/2 6/5/2 5/6/2
+f 5/6/3 6/5/3 8/7/3 7/8/3
+f 7/8/4 8/7/4 10/9/4 9/10/4
+f 9/10/5 10/9/5 12/11/5 11/12/5
+f 11/12/6 12/11/6 14/13/6 13/14/6
+f 13/14/7 14/13/7 16/15/7 15/16/7
+f 15/16/8 16/15/8 18/17/8 17/18/8
+f 17/18/9 18/17/9 20/19/9 19/20/9
+f 19/20/10 20/19/10 22/21/10 21/22/10
+f 21/22/11 22/21/11 24/23/11 23/24/11
+f 23/24/12 24/23/12 26/25/12 25/26/12
+f 25/26/13 26/25/13 28/27/13 27/28/13
+f 27/28/14 28/27/14 30/29/14 29/30/14
+f 29/30/15 30/29/15 32/31/15 31/32/15
+f 31/32/16 32/31/16 34/33/16 33/34/16
+f 33/34/17 34/33/17 36/35/17 35/36/17
+f 35/36/18 36/35/18 38/37/18 37/38/18
+f 37/38/19 38/37/19 40/39/19 39/40/19
+f 39/40/20 40/39/20 42/41/20 41/42/20
+f 41/42/21 42/41/21 44/43/21 43/44/21
+f 43/44/22 44/43/22 46/45/22 45/46/22
+f 45/46/23 46/45/23 48/47/23 47/48/23
+f 47/48/24 48/47/24 50/49/24 49/50/24
+f 49/50/25 50/49/25 52/51/25 51/52/25
+f 51/52/26 52/51/26 54/53/26 53/54/26
+f 53/54/27 54/53/27 56/55/27 55/56/27
+f 55/56/28 56/55/28 58/57/28 57/58/28
+f 57/58/29 58/57/29 60/59/29 59/60/29
+f 59/60/30 60/59/30 62/61/30 61/62/30
+f 4/63/31 2/64/31 64/65/31 62/66/31 60/67/31 58/68/31 56/69/31 54/70/31 52/71/31 50/72/31 48/73/31 46/74/31 44/75/31 42/76/31 40/77/31 38/78/31 36/79/31 34/80/31 32/81/31 30/82/31 28/83/31 26/84/31 24/85/31 22/86/31 20/87/31 18/88/31 16/89/31 14/90/31 12/91/31 10/92/31 8/93/31 6/94/31
+f 61/62/32 62/61/32 64/95/32 63/96/32
+f 63/96/33 64/95/33 2/97/33 1/98/33
+f 1/99/34 3/100/34 5/101/34 7/102/34 9/103/34 11/104/34 13/105/34 15/106/34 17/107/34 19/108/34 21/109/34 23/110/34 25/111/34 27/112/34 29/113/34 31/114/34 33/115/34 35/116/34 37/117/34 39/118/34 41/119/34 43/120/34 45/121/34 47/122/34 49/123/34 51/124/34 53/125/34 55/126/34 57/127/34 59/128/34 61/129/34 63/130/34
diff --git a/assets/models/map.mtl b/assets/models/map.mtl
new file mode 100644
index 0000000..f231bdf
--- /dev/null
+++ b/assets/models/map.mtl
@@ -0,0 +1,10 @@
+# Blender MTL File: 'None'
+# Material Count: 1
+
+newmtl None
+Ns 500
+Ka 0.8 0.8 0.8
+Kd 0.8 0.8 0.8
+Ks 0.8 0.8 0.8
+d 1
+illum 2
diff --git a/assets/models/map.obj b/assets/models/map.obj
new file mode 100644
index 0000000..b3d2c4f
--- /dev/null
+++ b/assets/models/map.obj
@@ -0,0 +1,1996 @@
+# Blender v2.90.1 OBJ File: ''
+# www.blender.org
+mtllib map.mtl
+o Sphere_Sphere.001
+v 0.000000 1.112160 -0.208400
+v 0.000000 1.030427 -0.425132
+v 0.000000 0.885985 -0.594145
+v 0.000000 0.797188 -0.814896
+v 0.000000 0.609254 -0.927976
+v 0.000000 0.404130 -0.975998
+v 0.000000 0.195090 -0.980785
+v 0.000000 0.000000 -0.973787
+v 0.000000 -0.152136 -0.820990
+v 0.000000 -0.341492 -0.224163
+v 0.041315 1.110455 -0.204021
+v 0.083867 1.039745 -0.419473
+v 0.120355 0.948220 -0.629362
+v 0.154650 0.814453 -0.817285
+v 0.177602 0.618843 -0.927799
+v 0.189796 0.404243 -0.962587
+v 0.191342 0.195090 -0.961940
+v 0.179250 0.000305 -0.902101
+v 0.140244 -0.143495 -0.752896
+v 0.067642 -0.227680 -0.619253
+v 0.012569 -0.259696 -0.493126
+v 0.001348 -0.331829 -0.363071
+v 0.000039 -0.343493 -0.202976
+v 0.000000 -0.370407 -0.116322
+v 0.000000 -0.380180 -0.116634
+v 0.082441 1.107900 -0.192903
+v 0.162815 1.042426 -0.395919
+v 0.246679 0.964086 -0.608500
+v 0.311784 0.812301 -0.768447
+v 0.363952 0.626778 -0.885454
+v 0.377451 0.404009 -0.916589
+v 0.382851 0.198975 -0.924283
+v 0.344481 0.001079 -0.834007
+v 0.275776 -0.145372 -0.684535
+v 0.215631 -0.254962 -0.636301
+v 0.060782 -0.258144 -0.473681
+v 0.002848 -0.323615 -0.308592
+v 0.000074 -0.346169 -0.178415
+v 0.000001 -0.370250 -0.116429
+v 0.000000 -0.370897 -0.120556
+v 0.123953 1.104398 -0.175099
+v 0.237654 1.041054 -0.354369
+v 0.365601 0.973777 -0.551587
+v 0.461844 0.825688 -0.701971
+v 0.528405 0.622511 -0.791150
+v 0.536295 0.396683 -0.802742
+v 0.544895 0.195090 -0.815493
+v 0.492925 0.003022 -0.740128
+v 0.416549 -0.126242 -0.604420
+v 0.343295 -0.250402 -0.564196
+v 0.133735 -0.276303 -0.417515
+v 0.006127 -0.334935 -0.237582
+v 0.001116 -0.352423 -0.142052
+v 0.000005 -0.370786 -0.115382
+v 0.000000 -0.372866 -0.115557
+v 0.159497 1.093795 -0.148145
+v 0.300108 1.042770 -0.299205
+v 0.462821 0.970387 -0.463938
+v 0.592520 0.826260 -0.604030
+v 0.670001 0.618285 -0.673020
+v 0.665544 0.389826 -0.666074
+v 0.693520 0.195090 -0.693520
+v 0.630296 0.000341 -0.630974
+v 0.584762 -0.130581 -0.547256
+v 0.428617 -0.237448 -0.441304
+v 0.179323 -0.289966 -0.275702
+v 0.013333 -0.342232 -0.162979
+v 0.004959 -0.364425 -0.112930
+v 0.000009 -0.371629 -0.113737
+v 0.000000 -0.375919 -0.108266
+v 0.185206 1.077347 -0.112946
+v 0.341301 1.005188 -0.221259
+v 0.506143 0.929639 -0.351491
+v 0.693280 0.824743 -0.479960
+v 0.787892 0.619488 -0.536182
+v 0.780480 0.388347 -0.522855
+v 0.818054 0.195699 -0.546606
+v 0.744750 0.001771 -0.495561
+v 0.688203 -0.135323 -0.449593
+v 0.516244 -0.209595 -0.336702
+v 0.221131 -0.287382 -0.193256
+v 0.025193 -0.339900 -0.124557
+v 0.007395 -0.373412 -0.099699
+v 0.000008 -0.372116 -0.112844
+v 0.000000 -0.376676 -0.103991
+v 0.201940 1.064862 -0.075764
+v 0.370159 0.984682 -0.153437
+v 0.547835 0.900200 -0.235133
+v 0.772990 0.849583 -0.357367
+v 0.881610 0.625988 -0.389861
+v 0.886673 0.395422 -0.369737
+v 0.921001 0.198273 -0.381491
+v 0.837481 0.003744 -0.340671
+v 0.799450 -0.161327 -0.335579
+v 0.573258 -0.230456 -0.218463
+v 0.258394 -0.259602 -0.143129
+v 0.047915 -0.326895 -0.105440
+v 0.012047 -0.375962 -0.094713
+v 0.000011 -0.373024 -0.110892
+v 0.000000 -0.374676 -0.108370
+v 0.210726 1.062475 -0.040569
+v 0.381900 0.947205 -0.077364
+v 0.588117 0.911996 -0.121556
+v 0.817229 0.875218 -0.199411
+v 1.005199 0.666480 -0.246893
+v 0.957138 0.399711 -0.192292
+v 0.995256 0.199260 -0.199625
+v 0.939300 0.004479 -0.180260
+v 0.814064 -0.150698 -0.154439
+v 0.621331 -0.241009 -0.074570
+v 0.334080 -0.254821 -0.037980
+v 0.123453 -0.295421 -0.056476
+v 0.025644 -0.391270 -0.068709
+v 0.000049 -0.375623 -0.103716
+v 0.000000 -0.374659 -0.108027
+v 0.212701 1.067404 -0.003028
+v 0.391479 0.947071 -0.000163
+v 0.600967 0.923250 -0.005606
+v 0.820924 0.862048 -0.017612
+v 1.090267 0.695812 -0.057960
+v 1.084401 0.412795 -0.022621
+v 1.028477 0.202607 -0.001524
+v 0.999457 0.002223 0.003396
+v 0.863971 -0.156265 0.013290
+v 0.649940 -0.231979 0.049344
+v 0.351359 -0.288916 0.073557
+v 0.205847 -0.328949 0.047597
+v 0.039716 -0.423753 0.008328
+v 0.000302 -0.387872 -0.067895
+v 0.000000 -0.376997 -0.100822
+v 0.206843 1.071772 0.037698
+v 0.390956 0.964288 0.076844
+v 0.583616 0.925605 0.109878
+v 0.823415 0.903997 0.144422
+v 1.096610 0.729382 0.170402
+v 1.061670 0.411184 0.191790
+v 1.082341 0.202514 0.209608
+v 1.047429 -0.005192 0.205642
+v 0.918818 -0.170693 0.184390
+v 0.623609 -0.230458 0.188586
+v 0.355777 -0.309097 0.206380
+v 0.229188 -0.309284 0.183114
+v 0.031479 -0.418600 0.146076
+v 0.001044 -0.420969 0.075206
+v 0.000003 -0.399155 -0.048419
+v 0.192705 1.074268 0.079389
+v 0.368614 0.966196 0.151447
+v 0.549365 0.917455 0.219210
+v 0.771259 0.897367 0.302598
+v 1.078234 0.769789 0.405554
+v 1.061625 0.417030 0.428503
+v 1.027258 0.200616 0.418404
+v 1.024587 -0.006465 0.420098
+v 0.917358 -0.197402 0.380561
+v 0.574817 -0.239937 0.322033
+v 0.364296 -0.340489 0.277089
+v 0.220770 -0.341818 0.258718
+v 0.047603 -0.413550 0.253374
+v 0.000676 -0.418232 0.184165
+v 0.000009 -0.420759 0.156603
+v 0.171097 1.077554 0.118802
+v 0.333125 0.976104 0.223644
+v 0.499712 0.919625 0.335273
+v 0.695862 0.926221 0.471169
+v 0.942932 0.765584 0.662398
+v 0.977423 0.422329 0.679610
+v 0.928026 0.207918 0.622133
+v 0.937057 -0.009835 0.624428
+v 0.836369 -0.196118 0.559461
+v 0.534429 -0.234161 0.434845
+v 0.346894 -0.343824 0.334509
+v 0.176045 -0.373532 0.286590
+v 0.042819 -0.418629 0.284056
+v 0.000563 -0.415924 0.209241
+v 0.143466 1.077614 0.152650
+v 0.283607 0.991560 0.292598
+v 0.416748 0.942494 0.444883
+v 0.574187 0.917611 0.617777
+v 0.734881 0.704238 0.790634
+v 0.773317 0.425672 0.806651
+v 0.805723 0.219896 0.813618
+v 0.767310 -0.008815 0.771058
+v 0.716522 -0.201301 0.716998
+v 0.483130 -0.237869 0.552685
+v 0.307412 -0.341158 0.398993
+v 0.136423 -0.404098 0.295845
+v 0.045099 -0.419342 0.289158
+v 0.001494 -0.415811 0.208041
+v 0.111296 1.069907 0.178759
+v 0.221014 0.986034 0.341183
+v 0.321518 0.909610 0.505677
+v 0.434001 0.873071 0.697582
+v 0.565455 0.695685 0.891809
+v 0.582421 0.416516 0.883785
+v 0.610155 0.218199 0.920885
+v 0.594938 -0.000116 0.890063
+v 0.551996 -0.197229 0.826638
+v 0.405186 -0.243170 0.651761
+v 0.273047 -0.325073 0.460876
+v 0.119152 -0.423442 0.318273
+v 0.035354 -0.422461 0.302299
+v 0.001694 -0.415483 0.211116
+v 0.000000 -0.375964 -0.110286
+v 0.076219 1.055838 0.196225
+v 0.155191 0.992516 0.376364
+v 0.221633 0.898465 0.557799
+v 0.283918 0.836923 0.740559
+v 0.371448 0.683939 0.958525
+v 0.386699 0.416350 0.983530
+v 0.409775 0.217375 1.001661
+v 0.413863 -0.003327 1.003790
+v 0.384508 -0.199912 0.929981
+v 0.296548 -0.260729 0.762411
+v 0.196545 -0.333688 0.515911
+v 0.084219 -0.447463 0.367044
+v 0.015921 -0.430984 0.325970
+v 0.000581 -0.415065 0.218353
+v 0.039048 1.045460 0.205974
+v 0.081208 0.992960 0.398918
+v 0.111923 0.877214 0.575308
+v 0.131391 0.816263 0.769445
+v 0.177492 0.677630 1.000753
+v 0.186866 0.401561 0.998481
+v 0.197595 0.202580 0.995453
+v 0.203548 -0.000225 1.019264
+v 0.198180 -0.199316 1.002514
+v 0.152602 -0.291427 0.830157
+v 0.088335 -0.351475 0.582303
+v 0.036040 -0.489362 0.447601
+v 0.003072 -0.466328 0.366781
+v 0.000188 -0.414799 0.224843
+v -0.000000 1.042658 0.209191
+v 0.000000 0.975531 0.401575
+v 0.000000 0.837060 0.558367
+v 0.000017 0.790518 0.764793
+v 0.000887 0.660054 0.994144
+v 0.000000 0.388940 0.947185
+v -0.000000 0.194276 0.978453
+v -0.000000 0.000370 1.049618
+v -0.000000 -0.196823 0.994421
+v 0.000000 -0.343435 0.863155
+v -0.000000 -0.362613 0.615490
+v -0.000000 -0.506188 0.459796
+v -0.000000 -0.476974 0.375661
+v 0.000000 -0.414971 0.230654
+v -0.039048 1.045460 0.205974
+v -0.081208 0.992960 0.398918
+v -0.111923 0.877214 0.575308
+v -0.131557 0.816401 0.769195
+v -0.178027 0.677723 1.000694
+v -0.186866 0.401561 0.998481
+v -0.197595 0.202580 0.995452
+v -0.203548 -0.000225 1.019264
+v -0.198180 -0.199316 1.002514
+v -0.152602 -0.291427 0.830157
+v -0.088335 -0.351475 0.582302
+v -0.036040 -0.489362 0.447601
+v -0.003072 -0.466328 0.366781
+v -0.000188 -0.414799 0.224843
+v -0.076219 1.055838 0.196224
+v -0.155191 0.992516 0.376364
+v -0.221701 0.898450 0.557805
+v -0.283640 0.837190 0.740067
+v -0.371007 0.683694 0.958662
+v -0.386697 0.416350 0.983530
+v -0.409775 0.217375 1.001661
+v -0.413863 -0.003327 1.003790
+v -0.384509 -0.199912 0.929981
+v -0.296548 -0.260729 0.762411
+v -0.196545 -0.333688 0.515911
+v -0.084219 -0.447463 0.367044
+v -0.015921 -0.430984 0.325970
+v -0.000581 -0.415065 0.218353
+v -0.111296 1.069908 0.178758
+v -0.221013 0.986034 0.341183
+v -0.321590 0.909521 0.505731
+v -0.432973 0.873295 0.696527
+v -0.565072 0.695422 0.892173
+v -0.582417 0.416550 0.883767
+v -0.610155 0.218199 0.920885
+v -0.594938 -0.000116 0.890063
+v -0.551996 -0.197229 0.826637
+v -0.405186 -0.243170 0.651761
+v -0.273047 -0.325073 0.460876
+v -0.119152 -0.423442 0.318273
+v -0.035354 -0.422461 0.302299
+v -0.001694 -0.415483 0.211116
+v -0.000000 1.077747 0.000042
+v -0.143466 1.077614 0.152650
+v -0.283607 0.991560 0.292598
+v -0.416674 0.942495 0.444874
+v -0.573985 0.917590 0.617886
+v -0.735472 0.704239 0.790356
+v -0.773240 0.425929 0.806771
+v -0.805723 0.219896 0.813618
+v -0.767310 -0.008815 0.771058
+v -0.716522 -0.201301 0.716997
+v -0.483130 -0.237869 0.552685
+v -0.307412 -0.341159 0.398993
+v -0.136423 -0.404098 0.295845
+v -0.045099 -0.419342 0.289158
+v -0.001494 -0.415811 0.208041
+v -0.171097 1.077554 0.118802
+v -0.333125 0.976104 0.223644
+v -0.499712 0.919625 0.335273
+v -0.696011 0.926186 0.471083
+v -0.940539 0.766394 0.664148
+v -0.977424 0.422383 0.679614
+v -0.928027 0.207918 0.622133
+v -0.937057 -0.009835 0.624428
+v -0.836369 -0.196118 0.559461
+v -0.534429 -0.234161 0.434845
+v -0.346894 -0.343824 0.334509
+v -0.176045 -0.373532 0.286590
+v -0.042819 -0.418629 0.284056
+v -0.000563 -0.415924 0.209241
+v -0.192705 1.074268 0.079389
+v -0.368614 0.966196 0.151447
+v -0.549365 0.917455 0.219210
+v -0.771135 0.897390 0.302704
+v -1.077404 0.771235 0.409337
+v -1.061694 0.416721 0.428477
+v -1.027258 0.200616 0.418404
+v -1.024587 -0.006465 0.420097
+v -0.917358 -0.197402 0.380561
+v -0.574817 -0.239937 0.322033
+v -0.364296 -0.340489 0.277089
+v -0.220769 -0.341818 0.258718
+v -0.047603 -0.413550 0.253374
+v -0.000676 -0.418232 0.184165
+v -0.000009 -0.420759 0.156603
+v -0.206843 1.071772 0.037698
+v -0.390956 0.964288 0.076844
+v -0.583616 0.925606 0.109878
+v -0.823393 0.904027 0.144544
+v -1.096552 0.729204 0.169855
+v -1.061680 0.411165 0.191837
+v -1.082341 0.202515 0.209607
+v -1.047429 -0.005192 0.205641
+v -0.918818 -0.170693 0.184390
+v -0.623609 -0.230458 0.188587
+v -0.355777 -0.309097 0.206380
+v -0.229187 -0.309284 0.183114
+v -0.031479 -0.418600 0.146075
+v -0.001044 -0.420969 0.075206
+v -0.000003 -0.399155 -0.048419
+v -0.212701 1.067404 -0.003028
+v -0.391479 0.947071 -0.000163
+v -0.600967 0.923250 -0.005606
+v -0.820955 0.862044 -0.017591
+v -1.090303 0.695790 -0.057893
+v -1.084403 0.412803 -0.022634
+v -1.028476 0.202597 -0.001535
+v -0.999457 0.002223 0.003396
+v -0.863971 -0.156265 0.013290
+v -0.649940 -0.231979 0.049344
+v -0.351358 -0.288916 0.073557
+v -0.205847 -0.328949 0.047597
+v -0.039715 -0.423753 0.008328
+v -0.000302 -0.387872 -0.067895
+v -0.000000 -0.376997 -0.100822
+v -0.210726 1.062475 -0.040569
+v -0.381900 0.947205 -0.077364
+v -0.588117 0.911996 -0.121556
+v -0.817231 0.875218 -0.199405
+v -1.005202 0.666462 -0.246898
+v -0.957137 0.399711 -0.192292
+v -0.995260 0.199272 -0.199609
+v -0.939299 0.004479 -0.180260
+v -0.814064 -0.150698 -0.154439
+v -0.621331 -0.241009 -0.074570
+v -0.334079 -0.254821 -0.037980
+v -0.123452 -0.295421 -0.056476
+v -0.025644 -0.391270 -0.068709
+v -0.000049 -0.375623 -0.103716
+v -0.000000 -0.374659 -0.108027
+v -0.201940 1.064863 -0.075764
+v -0.370159 0.984682 -0.153437
+v -0.547835 0.900200 -0.235133
+v -0.772989 0.849583 -0.357367
+v -0.881610 0.625988 -0.389861
+v -0.886673 0.395422 -0.369737
+v -0.921001 0.198273 -0.381491
+v -0.837480 0.003744 -0.340671
+v -0.799450 -0.161327 -0.335579
+v -0.573258 -0.230456 -0.218463
+v -0.258393 -0.259602 -0.143129
+v -0.047915 -0.326895 -0.105440
+v -0.012047 -0.375962 -0.094713
+v -0.000011 -0.373024 -0.110892
+v -0.000000 -0.374676 -0.108370
+v -0.185206 1.077347 -0.112946
+v -0.341300 1.005188 -0.221259
+v -0.506143 0.929640 -0.351491
+v -0.693280 0.824743 -0.479960
+v -0.787892 0.619488 -0.536182
+v -0.780480 0.388347 -0.522854
+v -0.818053 0.195699 -0.546606
+v -0.744749 0.001771 -0.495561
+v -0.688203 -0.135323 -0.449593
+v -0.516244 -0.209595 -0.336702
+v -0.221130 -0.287382 -0.193256
+v -0.025193 -0.339900 -0.124557
+v -0.007395 -0.373412 -0.099699
+v -0.000008 -0.372116 -0.112844
+v -0.000000 -0.376676 -0.103991
+v -0.159496 1.093795 -0.148145
+v -0.300107 1.042770 -0.299205
+v -0.462820 0.970388 -0.463938
+v -0.592519 0.826260 -0.604030
+v -0.670001 0.618285 -0.673020
+v -0.665543 0.389826 -0.666073
+v -0.693519 0.195090 -0.693519
+v -0.630295 0.000341 -0.630974
+v -0.584762 -0.130581 -0.547256
+v -0.428617 -0.237448 -0.441304
+v -0.179322 -0.289966 -0.275701
+v -0.013332 -0.342232 -0.162979
+v -0.004959 -0.364425 -0.112930
+v -0.000009 -0.371629 -0.113737
+v -0.000000 -0.375919 -0.108266
+v -0.123953 1.104398 -0.175099
+v -0.237654 1.041054 -0.354369
+v -0.365601 0.973777 -0.551587
+v -0.461843 0.825688 -0.701971
+v -0.528405 0.622511 -0.791150
+v -0.536295 0.396683 -0.802741
+v -0.544895 0.195090 -0.815492
+v -0.492924 0.003022 -0.740128
+v -0.416548 -0.126242 -0.604420
+v -0.343295 -0.250402 -0.564196
+v -0.133735 -0.276303 -0.417514
+v -0.006127 -0.334935 -0.237582
+v -0.001116 -0.352423 -0.142052
+v -0.000005 -0.370787 -0.115382
+v -0.000000 -0.372866 -0.115557
+v -0.082441 1.107900 -0.192903
+v -0.162815 1.042426 -0.395918
+v -0.246679 0.964086 -0.608499
+v -0.311784 0.812301 -0.768447
+v -0.363952 0.626778 -0.885454
+v -0.377451 0.404009 -0.916588
+v -0.382850 0.198975 -0.924283
+v -0.344480 0.001079 -0.834007
+v -0.275776 -0.145372 -0.684535
+v -0.215630 -0.254962 -0.636301
+v -0.060782 -0.258144 -0.473680
+v -0.002848 -0.323615 -0.308592
+v -0.000074 -0.346169 -0.178414
+v -0.000001 -0.370250 -0.116429
+v -0.000000 -0.370897 -0.120556
+v -0.041315 1.110455 -0.204021
+v -0.083867 1.039745 -0.419473
+v -0.120355 0.948221 -0.629362
+v -0.154649 0.814453 -0.817285
+v -0.177602 0.618844 -0.927799
+v -0.189796 0.404243 -0.962587
+v -0.191341 0.195090 -0.961939
+v -0.179250 0.000305 -0.902100
+v -0.140244 -0.143495 -0.752896
+v -0.067641 -0.227680 -0.619253
+v -0.012569 -0.259696 -0.493125
+v -0.001348 -0.331829 -0.363071
+v -0.000039 -0.343493 -0.202975
+v -0.000000 -0.370407 -0.116322
+v -0.000000 -0.380180 -0.116634
+v 0.000000 -0.239095 -0.631869
+v 0.000000 -0.270994 -0.484373
+v 0.000000 -0.340317 -0.366452
+v 0.000000 -0.371434 -0.114757
+vt 0.750000 0.312500
+vt 0.750000 0.375000
+vt 0.718750 0.375000
+vt 0.718750 0.312500
+vt 0.750000 0.750000
+vt 0.750000 0.812500
+vt 0.718750 0.812500
+vt 0.718750 0.750000
+vt 0.750000 0.250000
+vt 0.718750 0.250000
+vt 0.750000 0.687500
+vt 0.718750 0.687500
+vt 0.750000 0.187500
+vt 0.718750 0.187500
+vt 0.750000 0.625000
+vt 0.718750 0.625000
+vt 0.750000 0.125000
+vt 0.718750 0.125000
+vt 0.750000 0.562500
+vt 0.718750 0.562500
+vt 0.750000 0.500000
+vt 0.718750 0.500000
+vt 0.750000 0.937500
+vt 0.734375 1.000000
+vt 0.718750 0.937500
+vt 0.359375 0.000000
+vt 0.375000 0.125000
+vt 0.343750 0.125000
+vt 0.750000 0.437500
+vt 0.718750 0.437500
+vt 0.750000 0.875000
+vt 0.718750 0.875000
+vt 0.687500 0.437500
+vt 0.687500 0.375000
+vt 0.687500 0.875000
+vt 0.687500 0.812500
+vt 0.687500 0.312500
+vt 0.687500 0.750000
+vt 0.687500 0.250000
+vt 0.687500 0.687500
+vt 0.687500 0.187500
+vt 0.687500 0.625000
+vt 0.687500 0.125000
+vt 0.687500 0.562500
+vt 0.718750 0.062500
+vt 0.687500 0.062500
+vt 0.687500 0.500000
+vt 0.703125 1.000000
+vt 0.687500 0.937500
+vt 0.703125 0.000000
+vt 0.656250 0.187500
+vt 0.656250 0.125000
+vt 0.656250 0.625000
+vt 0.656250 0.562500
+vt 0.656250 0.062500
+vt 0.656250 0.500000
+vt 0.671875 1.000000
+vt 0.656250 0.937500
+vt 0.671875 0.000000
+vt 0.656250 0.437500
+vt 0.656250 0.875000
+vt 0.656250 0.375000
+vt 0.656250 0.812500
+vt 0.656250 0.312500
+vt 0.656250 0.750000
+vt 0.656250 0.250000
+vt 0.656250 0.687500
+vt 0.625000 0.875000
+vt 0.625000 0.812500
+vt 0.625000 0.375000
+vt 0.625000 0.312500
+vt 0.625000 0.750000
+vt 0.625000 0.250000
+vt 0.625000 0.687500
+vt 0.625000 0.187500
+vt 0.625000 0.625000
+vt 0.625000 0.125000
+vt 0.625000 0.562500
+vt 0.625000 0.062500
+vt 0.625000 0.500000
+vt 0.640625 1.000000
+vt 0.625000 0.937500
+vt 0.640625 0.000000
+vt 0.625000 0.437500
+vt 0.593750 0.625000
+vt 0.593750 0.562500
+vt 0.593750 0.125000
+vt 0.593750 0.062500
+vt 0.593750 0.500000
+vt 0.609375 1.000000
+vt 0.593750 0.937500
+vt 0.609375 0.000000
+vt 0.593750 0.437500
+vt 0.593750 0.875000
+vt 0.593750 0.375000
+vt 0.593750 0.812500
+vt 0.593750 0.312500
+vt 0.593750 0.750000
+vt 0.593750 0.250000
+vt 0.593750 0.687500
+vt 0.593750 0.187500
+vt 0.562500 0.375000
+vt 0.562500 0.312500
+vt 0.562500 0.812500
+vt 0.562500 0.750000
+vt 0.562500 0.250000
+vt 0.562500 0.687500
+vt 0.562500 0.187500
+vt 0.562500 0.625000
+vt 0.562500 0.125000
+vt 0.562500 0.562500
+vt 0.562500 0.062500
+vt 0.562500 0.500000
+vt 0.578125 1.000000
+vt 0.562500 0.937500
+vt 0.578125 0.000000
+vt 0.562500 0.437500
+vt 0.562500 0.875000
+vt 0.531250 0.125000
+vt 0.531250 0.062500
+vt 0.531250 0.562500
+vt 0.531250 0.500000
+vt 0.546875 1.000000
+vt 0.531250 0.937500
+vt 0.546875 0.000000
+vt 0.531250 0.437500
+vt 0.531250 0.875000
+vt 0.531250 0.375000
+vt 0.531250 0.812500
+vt 0.531250 0.312500
+vt 0.531250 0.750000
+vt 0.531250 0.250000
+vt 0.531250 0.687500
+vt 0.531250 0.187500
+vt 0.531250 0.625000
+vt 0.500000 0.812500
+vt 0.500000 0.750000
+vt 0.500000 0.312500
+vt 0.500000 0.250000
+vt 0.500000 0.687500
+vt 0.500000 0.187500
+vt 0.500000 0.625000
+vt 0.500000 0.125000
+vt 0.500000 0.562500
+vt 0.500000 0.062500
+vt 0.500000 0.500000
+vt 0.515625 1.000000
+vt 0.500000 0.937500
+vt 0.515625 0.000000
+vt 0.500000 0.437500
+vt 0.500000 0.875000
+vt 0.500000 0.375000
+vt 0.468750 0.562500
+vt 0.468750 0.500000
+vt 0.484374 1.000000
+vt 0.468750 0.937500
+vt 0.484375 0.000000
+vt 0.468750 0.062500
+vt 0.468750 0.437500
+vt 0.468750 0.875000
+vt 0.468750 0.375000
+vt 0.468750 0.812500
+vt 0.468750 0.312500
+vt 0.468750 0.750000
+vt 0.468750 0.250000
+vt 0.468750 0.687500
+vt 0.468750 0.187500
+vt 0.468750 0.625000
+vt 0.468750 0.125000
+vt 0.437500 0.312500
+vt 0.437500 0.250000
+vt 0.437500 0.750000
+vt 0.437500 0.687500
+vt 0.437500 0.187500
+vt 0.437500 0.625000
+vt 0.437500 0.125000
+vt 0.437500 0.562500
+vt 0.437500 0.062500
+vt 0.437500 0.500000
+vt 0.453124 1.000000
+vt 0.437500 0.937500
+vt 0.453125 0.000000
+vt 0.437500 0.437500
+vt 0.437500 0.875000
+vt 0.437500 0.375000
+vt 0.437500 0.812500
+vt 0.406250 0.125000
+vt 0.421875 0.000000
+vt 0.406250 0.500000
+vt 0.406250 0.437500
+vt 0.406250 0.937500
+vt 0.406250 0.875000
+vt 0.406250 0.375000
+vt 0.406250 0.812500
+vt 0.406250 0.312500
+vt 0.406250 0.750000
+vt 0.406250 0.250000
+vt 0.406250 0.687500
+vt 0.406250 0.187500
+vt 0.406250 0.625000
+vt 0.406250 0.562500
+vt 0.421874 1.000000
+vt 0.375000 0.250000
+vt 0.375000 0.187500
+vt 0.375000 0.687500
+vt 0.375000 0.625000
+vt 0.375000 0.562500
+vt 0.375000 0.500000
+vt 0.390625 1.000000
+vt 0.375000 0.937500
+vt 0.375000 0.437500
+vt 0.375000 0.875000
+vt 0.375000 0.375000
+vt 0.375000 0.812500
+vt 0.375000 0.312500
+vt 0.375000 0.750000
+vt 0.343750 0.937500
+vt 0.343750 0.875000
+vt 0.343750 0.437500
+vt 0.343750 0.375000
+vt 0.343750 0.812500
+vt 0.343750 0.312500
+vt 0.343750 0.750000
+vt 0.343750 0.250000
+vt 0.343750 0.687500
+vt 0.343750 0.187500
+vt 0.343750 0.625000
+vt 0.343750 0.562500
+vt 0.328125 0.000000
+vt 0.312500 0.125000
+vt 0.343750 0.500000
+vt 0.359375 1.000000
+vt 0.312500 0.687500
+vt 0.312500 0.625000
+vt 0.312500 0.187500
+vt 0.312500 0.562500
+vt 0.296875 0.000000
+vt 0.281250 0.125000
+vt 0.312500 0.500000
+vt 0.328125 1.000000
+vt 0.312500 0.937500
+vt 0.312500 0.437500
+vt 0.312500 0.875000
+vt 0.312500 0.375000
+vt 0.312500 0.812500
+vt 0.312500 0.312500
+vt 0.312500 0.750000
+vt 0.312500 0.250000
+vt 0.281250 0.437500
+vt 0.281250 0.375000
+vt 0.281250 0.875000
+vt 0.281250 0.812500
+vt 0.281250 0.312500
+vt 0.281250 0.750000
+vt 0.281250 0.250000
+vt 0.281250 0.687500
+vt 0.281250 0.187500
+vt 0.281250 0.625000
+vt 0.281250 0.562500
+vt 0.265625 0.000000
+vt 0.250000 0.125000
+vt 0.281250 0.500000
+vt 0.296875 1.000000
+vt 0.281250 0.937500
+vt 0.250000 0.187500
+vt 0.250000 0.625000
+vt 0.250000 0.562500
+vt 0.234375 0.000000
+vt 0.218750 0.125000
+vt 0.250000 0.500000
+vt 0.265625 1.000000
+vt 0.250000 0.937500
+vt 0.250000 0.437500
+vt 0.250000 0.875000
+vt 0.250000 0.375000
+vt 0.250000 0.812500
+vt 0.250000 0.312500
+vt 0.250000 0.750000
+vt 0.250000 0.250000
+vt 0.250000 0.687500
+vt 0.218750 0.875000
+vt 0.218750 0.812500
+vt 0.218750 0.375000
+vt 0.218750 0.312500
+vt 0.218750 0.750000
+vt 0.218750 0.250000
+vt 0.218750 0.687500
+vt 0.218750 0.187500
+vt 0.218750 0.625000
+vt 0.218750 0.562500
+vt 0.203125 0.000000
+vt 0.187500 0.125000
+vt 0.218750 0.500000
+vt 0.234375 1.000000
+vt 0.218750 0.937500
+vt 0.218750 0.437500
+vt 0.187500 0.625000
+vt 0.187500 0.562500
+vt 0.187500 0.500000
+vt 0.203125 1.000000
+vt 0.187500 0.937500
+vt 0.187500 0.437500
+vt 0.187500 0.875000
+vt 0.187500 0.375000
+vt 0.187500 0.812500
+vt 0.187500 0.312500
+vt 0.187500 0.750000
+vt 0.187500 0.250000
+vt 0.187500 0.687500
+vt 0.187500 0.187500
+vt 0.156250 0.375000
+vt 0.156250 0.312500
+vt 0.156250 0.812500
+vt 0.156250 0.750000
+vt 0.156250 0.250000
+vt 0.156250 0.687500
+vt 0.156250 0.187500
+vt 0.156250 0.625000
+vt 0.156250 0.125000
+vt 0.156250 0.562500
+vt 0.156250 0.500000
+vt 0.171875 1.000000
+vt 0.156250 0.937500
+vt 0.156250 0.437500
+vt 0.156250 0.875000
+vt 0.125000 0.562500
+vt 0.125000 0.500000
+vt 0.140625 1.000000
+vt 0.125000 0.937500
+vt 0.125000 0.437500
+vt 0.125000 0.875000
+vt 0.125000 0.375000
+vt 0.125000 0.812500
+vt 0.125000 0.312500
+vt 0.125000 0.750000
+vt 0.125000 0.250000
+vt 0.125000 0.687500
+vt 0.125000 0.187500
+vt 0.125000 0.625000
+vt 0.125000 0.125000
+vt 0.093750 0.312500
+vt 0.093750 0.250000
+vt 0.093750 0.750000
+vt 0.093750 0.687500
+vt 0.093750 0.187500
+vt 0.093750 0.625000
+vt 0.093750 0.125000
+vt 0.093750 0.562500
+vt 0.093750 0.500000
+vt 0.109375 1.000000
+vt 0.093750 0.937500
+vt 0.093750 0.437500
+vt 0.093750 0.875000
+vt 0.093750 0.375000
+vt 0.093750 0.812500
+vt 0.078125 1.000000
+vt 0.062500 0.937500
+vt 0.062500 0.500000
+vt 0.062500 0.437500
+vt 0.062500 0.875000
+vt 0.062500 0.375000
+vt 0.062500 0.812500
+vt 0.062500 0.312500
+vt 0.062500 0.750000
+vt 0.062500 0.250000
+vt 0.062500 0.687500
+vt 0.062500 0.187500
+vt 0.062500 0.625000
+vt 0.062500 0.125000
+vt 0.062500 0.562500
+vt 0.062500 0.062500
+vt 0.171875 0.000000
+vt 0.031250 0.750000
+vt 0.031250 0.687500
+vt 0.031250 0.250000
+vt 0.031250 0.187500
+vt 0.031250 0.625000
+vt 0.031250 0.125000
+vt 0.031250 0.562500
+vt 0.031250 0.062500
+vt 0.031250 0.500000
+vt 0.046875 1.000000
+vt 0.031250 0.937500
+vt 0.046875 0.000000
+vt 0.031250 0.437500
+vt 0.031250 0.875000
+vt 0.031250 0.375000
+vt 0.031250 0.812500
+vt 0.031250 0.312500
+vt 0.000000 0.500000
+vt 0.000000 0.437500
+vt 0.000000 0.937500
+vt 0.000000 0.875000
+vt 0.000000 0.375000
+vt 0.000000 0.812500
+vt 0.000000 0.312500
+vt 0.000000 0.750000
+vt 0.000000 0.250000
+vt 0.000000 0.687500
+vt 0.000000 0.187500
+vt 0.000000 0.625000
+vt 0.000000 0.125000
+vt 0.000000 0.562500
+vt 0.000000 0.062500
+vt 0.015625 1.000000
+vt 0.015625 0.000000
+vt 1.000000 0.187500
+vt 1.000000 0.250000
+vt 0.968750 0.250000
+vt 0.968750 0.187500
+vt 1.000000 0.625000
+vt 1.000000 0.687500
+vt 0.968750 0.687500
+vt 0.968750 0.625000
+vt 1.000000 0.125000
+vt 0.968750 0.125000
+vt 1.000000 0.562500
+vt 0.968750 0.562500
+vt 1.000000 0.062500
+vt 0.968750 0.062500
+vt 1.000000 0.500000
+vt 0.968750 0.500000
+vt 1.000000 0.937500
+vt 0.984375 1.000000
+vt 0.968750 0.937500
+vt 0.984375 0.000000
+vt 1.000000 0.437500
+vt 0.968750 0.437500
+vt 1.000000 0.875000
+vt 0.968750 0.875000
+vt 1.000000 0.375000
+vt 0.968750 0.375000
+vt 1.000000 0.812500
+vt 0.968750 0.812500
+vt 1.000000 0.312500
+vt 0.968750 0.312500
+vt 1.000000 0.750000
+vt 0.968750 0.750000
+vt 0.937500 0.937500
+vt 0.937500 0.875000
+vt 0.937500 0.437500
+vt 0.937500 0.375000
+vt 0.937500 0.812500
+vt 0.937500 0.312500
+vt 0.937500 0.750000
+vt 0.937500 0.250000
+vt 0.937500 0.687500
+vt 0.937500 0.187500
+vt 0.937500 0.625000
+vt 0.937500 0.125000
+vt 0.937500 0.562500
+vt 0.937500 0.062500
+vt 0.937500 0.500000
+vt 0.953125 1.000000
+vt 0.953125 0.000000
+vt 0.906250 0.687500
+vt 0.906250 0.625000
+vt 0.906250 0.187500
+vt 0.906250 0.125000
+vt 0.906250 0.562500
+vt 0.906250 0.062500
+vt 0.906250 0.500000
+vt 0.921875 1.000000
+vt 0.906250 0.937500
+vt 0.921875 0.000000
+vt 0.906250 0.437500
+vt 0.906250 0.875000
+vt 0.906250 0.375000
+vt 0.906250 0.812500
+vt 0.906250 0.312500
+vt 0.906250 0.750000
+vt 0.906250 0.250000
+vt 0.875000 0.437500
+vt 0.875000 0.375000
+vt 0.875000 0.875000
+vt 0.875000 0.812500
+vt 0.875000 0.312500
+vt 0.875000 0.750000
+vt 0.875000 0.250000
+vt 0.875000 0.687500
+vt 0.875000 0.187500
+vt 0.875000 0.625000
+vt 0.875000 0.125000
+vt 0.875000 0.562500
+vt 0.875000 0.062500
+vt 0.875000 0.500000
+vt 0.890625 1.000000
+vt 0.875000 0.937500
+vt 0.890625 0.000000
+vt 0.843750 0.187500
+vt 0.843750 0.125000
+vt 0.843750 0.625000
+vt 0.843750 0.562500
+vt 0.843750 0.062500
+vt 0.843750 0.500000
+vt 0.859375 1.000000
+vt 0.843750 0.937500
+vt 0.859375 0.000000
+vt 0.843750 0.437500
+vt 0.843750 0.875000
+vt 0.843750 0.375000
+vt 0.843750 0.812500
+vt 0.843750 0.312500
+vt 0.843750 0.750000
+vt 0.843750 0.250000
+vt 0.843750 0.687500
+vt 0.812500 0.375000
+vt 0.812500 0.312500
+vt 0.812500 0.812500
+vt 0.812500 0.750000
+vt 0.812500 0.250000
+vt 0.812500 0.687500
+vt 0.812500 0.187500
+vt 0.812500 0.625000
+vt 0.812500 0.125000
+vt 0.812500 0.562500
+vt 0.812500 0.062500
+vt 0.812500 0.500000
+vt 0.828125 1.000000
+vt 0.812500 0.937500
+vt 0.828125 0.000000
+vt 0.812500 0.437500
+vt 0.812500 0.875000
+vt 0.781250 0.125000
+vt 0.781250 0.062500
+vt 0.781250 0.562500
+vt 0.781250 0.500000
+vt 0.796875 1.000000
+vt 0.781250 0.937500
+vt 0.796875 0.000000
+vt 0.781250 0.437500
+vt 0.781250 0.875000
+vt 0.781250 0.375000
+vt 0.781250 0.812500
+vt 0.781250 0.312500
+vt 0.781250 0.750000
+vt 0.781250 0.250000
+vt 0.781250 0.687500
+vt 0.781250 0.187500
+vt 0.781250 0.625000
+vt 0.765625 1.000000
+vt 0.765625 0.000000
+vn 0.2761 -0.9468 -0.1656
+vn -0.3037 0.8258 -0.4752
+vn 0.7360 -0.6018 -0.3100
+vn -0.0462 0.5010 -0.8642
+vn 0.9809 -0.1944 -0.0040
+vn 0.0311 0.1943 -0.9804
+vn 1.0000 -0.0091 -0.0024
+vn 0.0843 0.0102 -0.9964
+vn 0.2339 -0.1713 -0.9570
+vn 0.0234 0.9864 0.1628
+vn -0.9672 0.2514 0.0360
+vn 0.3026 -0.7000 -0.6469
+vn -0.0304 0.9417 -0.3351
+vn 0.2442 -0.8784 -0.4108
+vn -0.3485 0.7802 -0.5194
+vn 0.0559 -0.7034 -0.7086
+vn -0.0029 0.9275 -0.3738
+vn -0.1247 -0.9700 -0.2089
+vn 0.1124 0.7836 -0.6111
+vn 0.5330 -0.8078 -0.2517
+vn 0.2090 0.5313 -0.8210
+vn 0.9845 -0.1754 -0.0068
+vn 0.2239 0.1581 -0.9617
+vn 1.0000 -0.0093 -0.0024
+vn 0.2152 0.0202 -0.9764
+vn -1.0000 0.0001 0.0000
+vn 0.2681 -0.3739 -0.8879
+vn 0.0176 0.9867 0.1617
+vn 1.0000 0.0000 0.0000
+vn 0.2770 -0.7371 -0.6164
+vn 0.0818 0.9545 -0.2866
+vn 0.9891 -0.1374 -0.0526
+vn 0.5704 0.0608 -0.8191
+vn 1.0000 -0.0009 -0.0010
+vn 0.4904 -0.4345 -0.7555
+vn 0.0145 0.9869 0.1604
+vn 0.3780 -0.7542 -0.5369
+vn 0.1625 0.9571 -0.2400
+vn 0.4532 -0.5299 -0.7168
+vn 0.1039 0.9529 -0.2849
+vn -0.0044 -0.9951 -0.0987
+vn 0.2182 0.7560 -0.6171
+vn 0.1071 -0.9525 -0.2850
+vn 0.3764 0.5213 -0.7659
+vn 0.1782 -0.9699 -0.1659
+vn 0.5410 0.1053 -0.8344
+vn 0.1981 0.9574 -0.2103
+vn 0.1252 -0.9900 -0.0646
+vn 0.3986 0.7830 -0.4776
+vn 0.2182 -0.9648 -0.1467
+vn 0.5555 0.4609 -0.6921
+vn 0.3908 -0.8965 -0.2084
+vn 0.6854 0.0126 -0.7280
+vn 0.8042 -0.5060 -0.3118
+vn 0.6768 0.1358 -0.7235
+vn 1.0000 -0.0043 -0.0023
+vn 0.5677 -0.4212 -0.7073
+vn 0.1151 0.9667 0.2285
+vn 1.0000 -0.0001 -0.0000
+vn 0.3317 -0.6942 -0.6388
+vn 0.2226 0.9614 -0.1615
+vn 0.4053 -0.7411 -0.5352
+vn 0.7544 0.2099 -0.6220
+vn 1.0000 -0.0023 -0.0003
+vn 0.6957 -0.4156 -0.5859
+vn 0.1858 0.9352 0.3013
+vn 1.0000 0.0002 -0.0000
+vn 0.6201 -0.5203 -0.5871
+vn 0.4769 0.8688 0.1329
+vn 0.3503 -0.9087 -0.2270
+vn 0.5022 0.8551 0.1289
+vn 0.2317 -0.9728 -0.0020
+vn 0.5185 0.8388 -0.1660
+vn 0.2451 -0.9670 -0.0695
+vn 0.6820 0.4570 -0.5710
+vn 0.6736 -0.6861 -0.2748
+vn 0.7681 -0.0480 -0.6386
+vn 0.7466 -0.4858 -0.4545
+vn 0.1561 -0.9866 -0.0469
+vn 0.2826 0.9510 -0.1253
+vn 0.3330 -0.9099 0.2474
+vn 0.7251 0.4512 -0.5202
+vn 0.6403 -0.6146 -0.4606
+vn 0.8318 -0.0443 -0.5533
+vn 0.8349 0.0203 -0.5501
+vn 0.8160 0.1999 -0.5423
+vn -1.0000 0.0048 0.0010
+vn 0.7754 -0.4238 -0.4681
+vn 0.1552 0.9555 0.2510
+vn -1.0000 0.0001 0.0001
+vn 0.7375 -0.3304 -0.5890
+vn 0.4602 0.8844 0.0780
+vn 0.1611 -0.9383 -0.3061
+vn 0.4557 0.8877 0.0662
+vn 0.9991 -0.0382 -0.0182
+vn 0.8294 -0.3628 -0.4248
+vn 0.0813 0.9956 0.0472
+vn 1.0000 -0.0007 0.0004
+vn 0.8461 -0.4577 -0.2732
+vn 0.5380 0.8202 0.1946
+vn 0.3289 -0.9423 -0.0632
+vn 0.3103 0.9496 0.0435
+vn 0.0612 -0.9967 -0.0535
+vn 0.1133 0.9789 -0.1702
+vn 0.2475 -0.9688 -0.0150
+vn 0.6708 0.5519 -0.4954
+vn 0.5959 -0.5435 -0.5912
+vn 0.8549 -0.1486 -0.4970
+vn 0.3972 -0.7294 -0.5569
+vn 0.9109 0.1837 -0.3696
+vn 0.2121 0.9772 -0.0055
+vn 0.2494 -0.8851 -0.3929
+vn 0.6032 0.7774 -0.1783
+vn 0.5619 -0.6346 -0.5306
+vn 0.8572 -0.1639 -0.4882
+vn -0.1355 -0.9268 -0.3502
+vn 0.9161 -0.0530 -0.3974
+vn 0.9845 -0.1641 -0.0614
+vn 0.9481 -0.2181 -0.2313
+vn 0.0462 0.9901 -0.1324
+vn 0.7321 -0.6362 -0.2435
+vn 0.5502 0.8302 -0.0901
+vn 0.3557 -0.9307 -0.0847
+vn 0.1318 0.9886 -0.0722
+vn 0.1061 -0.9864 -0.1257
+vn 0.9592 -0.1508 -0.2390
+vn 0.0469 0.9939 -0.0999
+vn 1.0000 0.0001 -0.0000
+vn 0.7559 -0.6076 -0.2437
+vn 0.5378 0.8339 -0.1237
+vn 0.2519 -0.9657 -0.0633
+vn 0.1587 0.9836 -0.0853
+vn 0.2291 -0.9722 -0.0482
+vn 0.1823 0.9724 -0.1455
+vn 0.1493 -0.9886 -0.0173
+vn 0.5206 0.8360 -0.1735
+vn 0.4801 -0.8756 0.0530
+vn 0.9971 -0.0638 0.0415
+vn -0.2466 -0.9637 -0.1025
+vn 0.9932 -0.0904 -0.0730
+vn 0.9977 -0.0644 -0.0220
+vn 0.0667 -0.9143 -0.3995
+vn 0.4608 0.8875 0.0064
+vn 0.4475 -0.8814 -0.1513
+vn 0.9962 -0.0735 0.0461
+vn 0.0299 -0.9990 0.0338
+vn 0.9920 -0.0297 0.1230
+vn -0.9833 -0.1814 -0.0120
+vn 0.9796 -0.0897 0.1797
+vn 0.0374 0.9982 -0.0471
+vn -1.0000 -0.0001 0.0000
+vn 0.8330 -0.5531 0.0116
+vn 0.4828 0.8676 0.1186
+vn 0.1647 -0.9829 -0.0828
+vn 0.2024 0.9746 0.0954
+vn 0.3542 -0.9280 -0.1159
+vn 0.0700 0.9945 0.0776
+vn -0.9931 0.1163 0.0175
+vn 0.7805 -0.5245 0.3403
+vn 0.4692 0.8724 0.1369
+vn 0.1048 -0.9922 0.0676
+vn 0.2624 0.9633 0.0569
+vn 0.4168 -0.8958 0.1543
+vn 0.0723 0.9944 -0.0766
+vn 0.1524 -0.9482 -0.2787
+vn 0.3957 0.9071 0.1434
+vn 0.3492 -0.8977 -0.2688
+vn 0.9170 0.0464 0.3962
+vn 0.0893 -0.9951 -0.0416
+vn 0.8997 -0.2328 0.3693
+vn 0.9092 0.0175 0.4160
+vn 0.0426 0.9973 -0.0598
+vn 0.1903 -0.5880 -0.7861
+vn 0.5128 0.1057 0.8520
+vn 0.3801 0.9086 -0.1730
+vn 0.6911 -0.1137 0.7137
+vn 0.7503 -0.1082 0.6522
+vn 0.0015 1.0000 -0.0005
+vn 0.6492 -0.4519 0.6119
+vn 0.4129 0.8938 0.1750
+vn 0.1165 -0.9924 0.0404
+vn 0.3109 0.9500 0.0268
+vn 0.3937 -0.8992 0.1909
+vn 0.0590 0.9982 -0.0084
+vn 0.2845 -0.9570 -0.0569
+vn 0.2685 0.8061 0.5273
+vn 0.1675 0.9121 0.3741
+vn 0.1077 -0.9870 0.1193
+vn 0.0193 0.9343 0.3559
+vn 0.2743 -0.9276 0.2535
+vn -0.1505 0.9506 0.2714
+vn 0.3333 -0.9277 0.1683
+vn 0.2315 0.7524 0.6167
+vn 0.1308 -0.8801 -0.4565
+vn 0.4406 0.0566 0.8959
+vn 0.1059 -0.9885 -0.1078
+vn 0.4214 0.1601 0.8926
+vn -0.7485 -0.6586 -0.0770
+vn 0.5107 -0.1986 0.8365
+vn -0.1332 0.9830 0.1261
+vn 0.5149 -0.3587 0.7786
+vn 0.3909 0.0516 0.9190
+vn 0.1575 -0.9759 -0.1512
+vn 0.4078 0.1767 0.8958
+vn -0.9313 -0.3620 -0.0414
+vn 0.4537 -0.0696 0.8884
+vn -0.2718 0.9390 0.2105
+vn 0.4965 -0.3656 0.7873
+vn 0.1081 0.9336 0.3416
+vn 0.1987 -0.9661 0.1650
+vn 0.1687 0.9140 0.3690
+vn 0.2920 -0.9398 0.1778
+vn -0.0727 0.9560 0.2842
+vn 0.4537 -0.8648 0.2151
+vn 0.0794 0.7980 0.5974
+vn 0.0386 -0.9220 -0.3852
+vn 0.2222 -0.9189 0.3261
+vn 0.0119 0.8640 0.5033
+vn 0.2703 -0.9485 0.1654
+vn -0.0927 0.9409 0.3259
+vn 0.5855 -0.7445 0.3208
+vn 0.0440 0.8439 0.5347
+vn 0.2035 -0.8691 -0.4508
+vn 0.1410 0.0477 0.9889
+vn 0.7817 -0.5854 -0.2153
+vn 0.0184 0.0395 0.9991
+vn -0.9333 -0.3569 -0.0408
+vn 0.0202 0.0616 0.9979
+vn -0.2171 0.9572 0.1912
+vn 0.2084 -0.2355 0.9493
+vn 0.0007 0.9551 0.2963
+vn 0.8054 -0.5483 -0.2250
+vn -0.1780 0.0656 0.9818
+vn 0.9333 -0.3569 -0.0408
+vn 0.0279 0.2331 0.9720
+vn -0.0570 0.9846 0.1652
+vn 0.0531 -0.1791 0.9824
+vn -0.1432 0.9406 0.3077
+vn 0.1536 -0.7879 0.5964
+vn -0.2690 0.7536 0.5998
+vn 0.2815 -0.9526 0.1158
+vn -0.2739 0.9255 0.2617
+vn 0.3787 -0.6977 0.6081
+vn -0.1381 0.8490 0.5100
+vn 0.4056 -0.8449 -0.3487
+vn -0.1493 -0.0909 0.9846
+vn 0.2690 0.7536 0.5998
+vn -0.2815 -0.9526 0.1158
+vn 0.2739 0.9255 0.2616
+vn -0.3787 -0.6977 0.6081
+vn 0.1371 0.8494 0.5096
+vn -0.4056 -0.8449 -0.3487
+vn 0.1482 -0.0911 0.9848
+vn -0.8055 -0.5483 -0.2250
+vn 0.1780 0.0656 0.9818
+vn 0.9313 -0.3620 -0.0414
+vn -0.0279 0.2331 0.9720
+vn 0.0570 0.9846 0.1652
+vn -0.0531 -0.1791 0.9824
+vn 0.1432 0.9406 0.3077
+vn -0.1536 -0.7879 0.5964
+vn -0.0184 0.0395 0.9991
+vn -0.0202 0.0616 0.9979
+vn 0.2171 0.9572 0.1912
+vn -0.2084 -0.2355 0.9493
+vn -0.0007 0.9551 0.2963
+vn -0.2222 -0.9189 0.3261
+vn -0.0120 0.8640 0.5034
+vn -0.2703 -0.9485 0.1654
+vn 0.0930 0.9409 0.3255
+vn -0.5855 -0.7445 0.3208
+vn -0.0448 0.8440 0.5345
+vn -0.2035 -0.8691 -0.4508
+vn -0.1409 0.0476 0.9889
+vn -0.7817 -0.5854 -0.2153
+vn -0.2920 -0.9398 0.1778
+vn 0.0723 0.9563 0.2835
+vn -0.4537 -0.8648 0.2151
+vn -0.0799 0.7986 0.5965
+vn -0.0386 -0.9220 -0.3852
+vn -0.3905 0.0513 0.9192
+vn -0.1574 -0.9759 -0.1512
+vn -0.4078 0.1767 0.8958
+vn -0.4537 -0.0696 0.8884
+vn 0.2719 0.9390 0.2105
+vn -0.4965 -0.3656 0.7873
+vn -0.1081 0.9336 0.3416
+vn -0.1987 -0.9661 0.1650
+vn -0.1690 0.9139 0.3690
+vn -0.5107 -0.1986 0.8365
+vn 0.1332 0.9830 0.1261
+vn -0.5149 -0.3587 0.7786
+vn -0.1675 0.9121 0.3741
+vn -0.1077 -0.9870 0.1193
+vn -0.0191 0.9342 0.3562
+vn -0.2743 -0.9276 0.2535
+vn 0.1509 0.9506 0.2712
+vn -0.3333 -0.9277 0.1683
+vn -0.2292 0.7527 0.6171
+vn -0.1308 -0.8801 -0.4565
+vn -0.4406 0.0565 0.8959
+vn -0.1059 -0.9885 -0.1078
+vn -0.4212 0.1598 0.8928
+vn -0.2845 -0.9570 -0.0569
+vn -0.2661 0.8066 0.5278
+vn -0.1903 -0.5880 -0.7861
+vn -0.5125 0.1051 0.8522
+vn -0.3801 0.9086 -0.1729
+vn -0.6911 -0.1137 0.7137
+vn -0.7503 -0.1082 0.6522
+vn -0.0015 1.0000 -0.0005
+vn -0.6492 -0.4519 0.6119
+vn -0.4129 0.8938 0.1750
+vn -0.1165 -0.9924 0.0404
+vn -0.3109 0.9501 0.0269
+vn -0.3937 -0.8992 0.1909
+vn -0.0591 0.9982 -0.0083
+vn -0.0426 0.9973 -0.0598
+vn -0.7805 -0.5245 0.3403
+vn -0.4692 0.8724 0.1369
+vn -0.1048 -0.9922 0.0676
+vn -0.2624 0.9633 0.0569
+vn -0.4168 -0.8958 0.1543
+vn -0.0723 0.9944 -0.0766
+vn -0.1524 -0.9482 -0.2787
+vn -0.3925 0.9082 0.1452
+vn -0.3492 -0.8977 -0.2688
+vn -0.9153 0.0476 0.4000
+vn -0.0892 -0.9951 -0.0416
+vn -0.8995 -0.2331 0.3695
+vn 0.9996 0.0268 0.0068
+vn -0.9092 0.0175 0.4160
+vn -0.4603 0.8878 0.0036
+vn -0.4475 -0.8814 -0.1513
+vn -0.9963 -0.0720 0.0472
+vn -0.0299 -0.9990 0.0338
+vn -0.9920 -0.0299 0.1229
+vn 0.9833 -0.1814 -0.0120
+vn -0.9796 -0.0897 0.1797
+vn -0.0374 0.9982 -0.0471
+vn -0.8330 -0.5531 0.0116
+vn -0.4828 0.8676 0.1186
+vn -0.1647 -0.9829 -0.0828
+vn -0.2024 0.9746 0.0954
+vn -0.3542 -0.9280 -0.1159
+vn -0.0699 0.9945 0.0776
+vn -0.0667 -0.9143 -0.3995
+vn -0.7559 -0.6076 -0.2437
+vn -0.5378 0.8339 -0.1237
+vn -0.2519 -0.9657 -0.0633
+vn -0.1587 0.9836 -0.0853
+vn -0.2291 -0.9722 -0.0482
+vn -0.1823 0.9724 -0.1455
+vn -0.1493 -0.9886 -0.0173
+vn -0.5208 0.8359 -0.1733
+vn -0.4801 -0.8756 0.0530
+vn -0.9971 -0.0637 0.0417
+vn 0.2466 -0.9637 -0.1025
+vn -0.9932 -0.0904 -0.0730
+vn -0.9977 -0.0644 -0.0220
+vn -0.9592 -0.1508 -0.2390
+vn -0.0469 0.9939 -0.0999
+vn -0.5619 -0.6346 -0.5306
+vn -0.8572 -0.1639 -0.4882
+vn 0.1355 -0.9268 -0.3502
+vn -0.9161 -0.0531 -0.3974
+vn -0.9845 -0.1641 -0.0614
+vn -0.9481 -0.2181 -0.2313
+vn -0.0462 0.9901 -0.1324
+vn -1.0000 -0.0000 -0.0000
+vn -0.7321 -0.6362 -0.2435
+vn -0.5502 0.8302 -0.0901
+vn -0.3557 -0.9307 -0.0847
+vn -0.1318 0.9886 -0.0722
+vn -0.1061 -0.9864 -0.1257
+vn -0.2121 0.9772 -0.0055
+vn -0.2494 -0.8851 -0.3929
+vn -0.6032 0.7774 -0.1784
+vn -0.5380 0.8202 0.1946
+vn -0.3289 -0.9423 -0.0632
+vn -0.3103 0.9496 0.0435
+vn -0.0612 -0.9967 -0.0535
+vn -0.1133 0.9789 -0.1702
+vn -0.2475 -0.9688 -0.0150
+vn -0.6709 0.5519 -0.4954
+vn -0.5959 -0.5435 -0.5912
+vn -0.8549 -0.1486 -0.4970
+vn -0.3972 -0.7294 -0.5569
+vn -0.9109 0.1837 -0.3696
+vn -0.9991 -0.0382 -0.0182
+vn -0.8294 -0.3628 -0.4248
+vn -0.0813 0.9956 0.0472
+vn -1.0000 -0.0007 0.0004
+vn -0.8461 -0.4577 -0.2732
+vn -0.8318 -0.0443 -0.5533
+vn -0.8349 0.0203 -0.5501
+vn -0.8160 0.1999 -0.5423
+vn 1.0000 0.0047 0.0010
+vn -0.7754 -0.4238 -0.4681
+vn -0.1552 0.9555 0.2510
+vn 1.0000 0.0001 0.0001
+vn -0.7375 -0.3304 -0.5890
+vn -0.4602 0.8844 0.0780
+vn -0.1611 -0.9383 -0.3061
+vn -0.4557 0.8877 0.0662
+vn -0.1561 -0.9866 -0.0469
+vn -0.2826 0.9510 -0.1253
+vn -0.3330 -0.9099 0.2474
+vn -0.7251 0.4512 -0.5202
+vn -0.6403 -0.6146 -0.4606
+vn -0.3503 -0.9087 -0.2270
+vn -0.5022 0.8551 0.1289
+vn -0.2317 -0.9728 -0.0020
+vn -0.5185 0.8388 -0.1660
+vn -0.2451 -0.9670 -0.0695
+vn -0.6820 0.4570 -0.5710
+vn -0.6736 -0.6861 -0.2748
+vn -0.7681 -0.0480 -0.6386
+vn -0.7466 -0.4858 -0.4545
+vn -0.7544 0.2099 -0.6220
+vn -1.0000 -0.0023 -0.0003
+vn -0.6957 -0.4156 -0.5859
+vn -0.1858 0.9352 0.3013
+vn -1.0000 0.0002 -0.0000
+vn -0.6201 -0.5203 -0.5871
+vn -0.4769 0.8688 0.1329
+vn -0.8042 -0.5060 -0.3118
+vn -0.6768 0.1358 -0.7235
+vn -1.0000 -0.0043 -0.0023
+vn -0.5677 -0.4212 -0.7073
+vn -0.1151 0.9667 0.2285
+vn -0.3317 -0.6942 -0.6388
+vn -0.2226 0.9614 -0.1615
+vn -0.4053 -0.7411 -0.5352
+vn -0.1981 0.9574 -0.2103
+vn -0.1252 -0.9900 -0.0646
+vn -0.3986 0.7830 -0.4776
+vn -0.2182 -0.9648 -0.1467
+vn -0.5555 0.4609 -0.6921
+vn -0.3908 -0.8965 -0.2084
+vn -0.6854 0.0126 -0.7280
+vn 0.0044 -0.9951 -0.0987
+vn -0.2182 0.7560 -0.6171
+vn -0.1071 -0.9525 -0.2850
+vn -0.3764 0.5213 -0.7659
+vn -0.1781 -0.9699 -0.1659
+vn -0.5410 0.1053 -0.8344
+vn -0.9891 -0.1374 -0.0526
+vn -0.5704 0.0608 -0.8191
+vn -1.0000 -0.0009 -0.0010
+vn -0.4904 -0.4345 -0.7555
+vn -0.0145 0.9869 0.1604
+vn -0.3780 -0.7542 -0.5369
+vn -0.1625 0.9571 -0.2400
+vn -0.4532 -0.5299 -0.7168
+vn -0.1039 0.9529 -0.2849
+vn -0.2681 -0.3739 -0.8879
+vn -0.0176 0.9867 0.1617
+vn -0.2770 -0.7371 -0.6164
+vn -0.0818 0.9545 -0.2866
+vn -0.0559 -0.7034 -0.7086
+vn 0.0029 0.9275 -0.3738
+vn 0.1246 -0.9700 -0.2089
+vn -0.1124 0.7836 -0.6111
+vn -0.5330 -0.8078 -0.2517
+vn -0.2090 0.5313 -0.8210
+vn -0.9845 -0.1754 -0.0068
+vn -0.2239 0.1581 -0.9617
+vn -1.0000 -0.0093 -0.0024
+vn -0.2152 0.0202 -0.9764
+vn 0.3037 0.8258 -0.4752
+vn -0.7360 -0.6018 -0.3100
+vn 0.0462 0.5010 -0.8642
+vn -0.9809 -0.1944 -0.0040
+vn -0.0311 0.1943 -0.9804
+vn -1.0000 -0.0091 -0.0024
+vn -0.0843 0.0102 -0.9964
+vn -0.2339 -0.1713 -0.9570
+vn -0.0234 0.9864 0.1628
+vn 0.1219 0.2001 -0.9722
+vn -0.3026 -0.7000 -0.6469
+vn 0.0304 0.9417 -0.3351
+vn -0.2442 -0.8784 -0.4108
+vn 0.3485 0.7802 -0.5194
+vn -0.2761 -0.9468 -0.1656
+usemtl None
+s off
+f 468/1/1 467/2/1 20/3/1 21/4/1
+f 4/5/2 3/6/2 13/7/2 14/8/2
+f 469/9/3 468/1/3 21/4/3 22/10/3
+f 5/11/4 4/5/4 14/8/4 15/12/4
+f 10/13/5 469/9/5 22/10/5 23/14/5
+f 6/15/6 5/11/6 15/12/6 16/16/6
+f 470/17/7 10/13/7 23/14/7 24/18/7
+f 7/19/8 6/15/8 16/16/8 17/20/8
+f 8/21/9 7/19/9 17/20/9 18/22/9
+f 1/23/10 288/24/10 11/25/10
+f 203/26/11 188/27/11 202/28/11
+f 9/29/12 8/21/12 18/22/12 19/30/12
+f 2/31/13 1/23/13 11/25/13 12/32/13
+f 467/2/14 9/29/14 19/30/14 20/3/14
+f 3/6/15 2/31/15 12/32/15 13/7/15
+f 20/3/16 19/30/16 34/33/16 35/34/16
+f 13/7/17 12/32/17 27/35/17 28/36/17
+f 21/4/18 20/3/18 35/34/18 36/37/18
+f 14/8/19 13/7/19 28/36/19 29/38/19
+f 22/10/20 21/4/20 36/37/20 37/39/20
+f 15/12/21 14/8/21 29/38/21 30/40/21
+f 23/14/22 22/10/22 37/39/22 38/41/22
+f 16/16/23 15/12/23 30/40/23 31/42/23
+f 24/18/24 23/14/24 38/41/24 39/43/24
+f 17/20/25 16/16/25 31/42/25 32/44/25
+f 25/45/26 24/18/26 39/43/26 40/46/26
+f 18/22/27 17/20/27 32/44/27 33/47/27
+f 11/25/28 288/48/28 26/49/28
+f 203/50/29 25/45/29 40/46/29
+f 19/30/30 18/22/30 33/47/30 34/33/30
+f 12/32/31 11/25/31 26/49/31 27/35/31
+f 39/43/32 38/41/32 53/51/32 54/52/32
+f 32/44/33 31/42/33 46/53/33 47/54/33
+f 40/46/34 39/43/34 54/52/34 55/55/34
+f 33/47/35 32/44/35 47/54/35 48/56/35
+f 26/49/36 288/57/36 41/58/36
+f 203/59/29 40/46/29 55/55/29
+f 34/33/37 33/47/37 48/56/37 49/60/37
+f 27/35/38 26/49/38 41/58/38 42/61/38
+f 35/34/39 34/33/39 49/60/39 50/62/39
+f 28/36/40 27/35/40 42/61/40 43/63/40
+f 36/37/41 35/34/41 50/62/41 51/64/41
+f 29/38/42 28/36/42 43/63/42 44/65/42
+f 37/39/43 36/37/43 51/64/43 52/66/43
+f 30/40/44 29/38/44 44/65/44 45/67/44
+f 38/41/45 37/39/45 52/66/45 53/51/45
+f 31/42/46 30/40/46 45/67/46 46/53/46
+f 43/63/47 42/61/47 57/68/47 58/69/47
+f 51/64/48 50/62/48 65/70/48 66/71/48
+f 44/65/49 43/63/49 58/69/49 59/72/49
+f 52/66/50 51/64/50 66/71/50 67/73/50
+f 45/67/51 44/65/51 59/72/51 60/74/51
+f 53/51/52 52/66/52 67/73/52 68/75/52
+f 46/53/53 45/67/53 60/74/53 61/76/53
+f 54/52/54 53/51/54 68/75/54 69/77/54
+f 47/54/55 46/53/55 61/76/55 62/78/55
+f 55/55/56 54/52/56 69/77/56 70/79/56
+f 48/56/57 47/54/57 62/78/57 63/80/57
+f 41/58/58 288/81/58 56/82/58
+f 203/83/59 55/55/59 70/79/59
+f 49/60/60 48/56/60 63/80/60 64/84/60
+f 42/61/61 41/58/61 56/82/61 57/68/61
+f 50/62/62 49/60/62 64/84/62 65/70/62
+f 62/78/63 61/76/63 76/85/63 77/86/63
+f 70/79/64 69/77/64 84/87/64 85/88/64
+f 63/80/65 62/78/65 77/86/65 78/89/65
+f 56/82/66 288/90/66 71/91/66
+f 203/92/67 70/79/67 85/88/67
+f 64/84/68 63/80/68 78/89/68 79/93/68
+f 57/68/69 56/82/69 71/91/69 72/94/69
+f 65/70/70 64/84/70 79/93/70 80/95/70
+f 58/69/71 57/68/71 72/94/71 73/96/71
+f 66/71/72 65/70/72 80/95/72 81/97/72
+f 59/72/73 58/69/73 73/96/73 74/98/73
+f 67/73/74 66/71/74 81/97/74 82/99/74
+f 60/74/75 59/72/75 74/98/75 75/100/75
+f 68/75/76 67/73/76 82/99/76 83/101/76
+f 61/76/77 60/74/77 75/100/77 76/85/77
+f 69/77/78 68/75/78 83/101/78 84/87/78
+f 81/97/79 80/95/79 95/102/79 96/103/79
+f 74/98/80 73/96/80 88/104/80 89/105/80
+f 82/99/81 81/97/81 96/103/81 97/106/81
+f 75/100/82 74/98/82 89/105/82 90/107/82
+f 83/101/83 82/99/83 97/106/83 98/108/83
+f 76/85/84 75/100/84 90/107/84 91/109/84
+f 84/87/85 83/101/85 98/108/85 99/110/85
+f 77/86/86 76/85/86 91/109/86 92/111/86
+f 85/88/87 84/87/87 99/110/87 100/112/87
+f 78/89/88 77/86/88 92/111/88 93/113/88
+f 71/91/89 288/114/89 86/115/89
+f 203/116/90 85/88/90 100/112/90
+f 79/93/91 78/89/91 93/113/91 94/117/91
+f 72/94/92 71/91/92 86/115/92 87/118/92
+f 80/95/93 79/93/93 94/117/93 95/102/93
+f 73/96/94 72/94/94 87/118/94 88/104/94
+f 100/112/95 99/110/95 114/119/95 115/120/95
+f 93/113/96 92/111/96 107/121/96 108/122/96
+f 86/115/97 288/123/97 101/124/97
+f 203/125/98 100/112/98 115/120/98
+f 94/117/99 93/113/99 108/122/99 109/126/99
+f 87/118/100 86/115/100 101/124/100 102/127/100
+f 95/102/101 94/117/101 109/126/101 110/128/101
+f 88/104/102 87/118/102 102/127/102 103/129/102
+f 96/103/103 95/102/103 110/128/103 111/130/103
+f 89/105/104 88/104/104 103/129/104 104/131/104
+f 97/106/105 96/103/105 111/130/105 112/132/105
+f 90/107/106 89/105/106 104/131/106 105/133/106
+f 98/108/107 97/106/107 112/132/107 113/134/107
+f 91/109/108 90/107/108 105/133/108 106/135/108
+f 99/110/109 98/108/109 113/134/109 114/119/109
+f 92/111/110 91/109/110 106/135/110 107/121/110
+f 104/131/111 103/129/111 118/136/111 119/137/111
+f 112/132/112 111/130/112 126/138/112 127/139/112
+f 105/133/113 104/131/113 119/137/113 120/140/113
+f 113/134/114 112/132/114 127/139/114 128/141/114
+f 106/135/115 105/133/115 120/140/115 121/142/115
+f 114/119/116 113/134/116 128/141/116 129/143/116
+f 107/121/117 106/135/117 121/142/117 122/144/117
+f 115/120/118 114/119/118 129/143/118 130/145/118
+f 108/122/119 107/121/119 122/144/119 123/146/119
+f 101/124/120 288/147/120 116/148/120
+f 203/149/29 115/120/29 130/145/29
+f 109/126/121 108/122/121 123/146/121 124/150/121
+f 102/127/122 101/124/122 116/148/122 117/151/122
+f 110/128/123 109/126/123 124/150/123 125/152/123
+f 103/129/124 102/127/124 117/151/124 118/136/124
+f 111/130/125 110/128/125 125/152/125 126/138/125
+f 123/146/126 122/144/126 137/153/126 138/154/126
+f 116/148/127 288/155/127 131/156/127
+f 203/157/128 130/145/128 145/158/128
+f 124/150/129 123/146/129 138/154/129 139/159/129
+f 117/151/130 116/148/130 131/156/130 132/160/130
+f 125/152/131 124/150/131 139/159/131 140/161/131
+f 118/136/132 117/151/132 132/160/132 133/162/132
+f 126/138/133 125/152/133 140/161/133 141/163/133
+f 119/137/134 118/136/134 133/162/134 134/164/134
+f 127/139/135 126/138/135 141/163/135 142/165/135
+f 120/140/136 119/137/136 134/164/136 135/166/136
+f 128/141/137 127/139/137 142/165/137 143/167/137
+f 121/142/138 120/140/138 135/166/138 136/168/138
+f 129/143/139 128/141/139 143/167/139 144/169/139
+f 122/144/140 121/142/140 136/168/140 137/153/140
+f 130/145/141 129/143/141 144/169/141 145/158/141
+f 142/165/142 141/163/142 156/170/142 157/171/142
+f 135/166/143 134/164/143 149/172/143 150/173/143
+f 143/167/144 142/165/144 157/171/144 158/174/144
+f 136/168/145 135/166/145 150/173/145 151/175/145
+f 144/169/146 143/167/146 158/174/146 159/176/146
+f 137/153/147 136/168/147 151/175/147 152/177/147
+f 145/158/148 144/169/148 159/176/148 160/178/148
+f 138/154/149 137/153/149 152/177/149 153/179/149
+f 131/156/150 288/180/150 146/181/150
+f 203/182/151 145/158/151 160/178/151
+f 139/159/152 138/154/152 153/179/152 154/183/152
+f 132/160/153 131/156/153 146/181/153 147/184/153
+f 140/161/154 139/159/154 154/183/154 155/185/154
+f 133/162/155 132/160/155 147/184/155 148/186/155
+f 141/163/156 140/161/156 155/185/156 156/170/156
+f 134/164/157 133/162/157 148/186/157 149/172/157
+f 174/187/158 188/27/158 203/188/158 160/178/158 159/176/158
+f 154/183/159 153/179/159 168/189/159 169/190/159
+f 147/184/160 146/181/160 161/191/160 162/192/160
+f 155/185/161 154/183/161 169/190/161 170/193/161
+f 148/186/162 147/184/162 162/192/162 163/194/162
+f 156/170/163 155/185/163 170/193/163 171/195/163
+f 149/172/164 148/186/164 163/194/164 164/196/164
+f 157/171/165 156/170/165 171/195/165 172/197/165
+f 150/173/166 149/172/166 164/196/166 165/198/166
+f 158/174/167 157/171/167 172/197/167 173/199/167
+f 151/175/168 150/173/168 165/198/168 166/200/168
+f 159/176/169 158/174/169 173/199/169 174/187/169
+f 152/177/170 151/175/170 166/200/170 167/201/170
+f 153/179/171 152/177/171 167/201/171 168/189/171
+f 146/181/172 288/202/172 161/191/172
+f 173/199/173 172/197/173 186/203/173 187/204/173
+f 166/200/174 165/198/174 179/205/174 180/206/174
+f 174/187/175 173/199/175 187/204/175 188/27/175
+f 167/201/176 166/200/176 180/206/176 181/207/176
+f 168/189/177 167/201/177 181/207/177 182/208/177
+f 161/191/178 288/209/178 175/210/178
+f 169/190/179 168/189/179 182/208/179 183/211/179
+f 162/192/180 161/191/180 175/210/180 176/212/180
+f 170/193/181 169/190/181 183/211/181 184/213/181
+f 163/194/182 162/192/182 176/212/182 177/214/182
+f 171/195/183 170/193/183 184/213/183 185/215/183
+f 164/196/184 163/194/184 177/214/184 178/216/184
+f 172/197/185 171/195/185 185/215/185 186/203/185
+f 165/198/186 164/196/186 178/216/186 179/205/186
+f 176/212/187 175/210/187 189/217/187 190/218/187
+f 184/213/188 183/211/188 197/219/188 198/220/188
+f 177/214/189 176/212/189 190/218/189 191/221/189
+f 185/215/190 184/213/190 198/220/190 199/222/190
+f 178/216/191 177/214/191 191/221/191 192/223/191
+f 186/203/192 185/215/192 199/222/192 200/224/192
+f 179/205/193 178/216/193 192/223/193 193/225/193
+f 187/204/194 186/203/194 200/224/194 201/226/194
+f 180/206/195 179/205/195 193/225/195 194/227/195
+f 188/27/196 187/204/196 201/226/196 202/28/196
+f 181/207/197 180/206/197 194/227/197 195/228/197
+f 203/229/198 202/28/198 217/230/198
+f 182/208/199 181/207/199 195/228/199 196/231/199
+f 175/210/200 288/232/200 189/217/200
+f 183/211/201 182/208/201 196/231/201 197/219/201
+f 194/227/202 193/225/202 208/233/202 209/234/202
+f 202/28/203 201/226/203 216/235/203 217/230/203
+f 195/228/204 194/227/204 209/234/204 210/236/204
+f 203/237/205 217/230/205 231/238/205
+f 196/231/206 195/228/206 210/236/206 211/239/206
+f 189/217/207 288/240/207 204/241/207
+f 197/219/208 196/231/208 211/239/208 212/242/208
+f 190/218/209 189/217/209 204/241/209 205/243/209
+f 198/220/210 197/219/210 212/242/210 213/244/210
+f 191/221/211 190/218/211 205/243/211 206/245/211
+f 199/222/212 198/220/212 213/244/212 214/246/212
+f 192/223/213 191/221/213 206/245/213 207/247/213
+f 200/224/214 199/222/214 214/246/214 215/248/214
+f 193/225/215 192/223/215 207/247/215 208/233/215
+f 201/226/216 200/224/216 215/248/216 216/235/216
+f 213/244/217 212/242/217 226/249/217 227/250/217
+f 206/245/218 205/243/218 219/251/218 220/252/218
+f 214/246/219 213/244/219 227/250/219 228/253/219
+f 207/247/220 206/245/220 220/252/220 221/254/220
+f 215/248/221 214/246/221 228/253/221 229/255/221
+f 208/233/222 207/247/222 221/254/222 222/256/222
+f 216/235/223 215/248/223 229/255/223 230/257/223
+f 209/234/224 208/233/224 222/256/224 223/258/224
+f 217/230/225 216/235/225 230/257/225 231/238/225
+f 210/236/226 209/234/226 223/258/226 224/259/226
+f 203/260/227 231/238/227 245/261/227
+f 211/239/228 210/236/228 224/259/228 225/262/228
+f 204/241/229 288/263/229 218/264/229
+f 212/242/230 211/239/230 225/262/230 226/249/230
+f 205/243/231 204/241/231 218/264/231 219/251/231
+f 231/238/232 230/257/232 244/265/232 245/261/232
+f 224/259/233 223/258/233 237/266/233 238/267/233
+f 203/268/234 245/261/234 259/269/234
+f 225/262/235 224/259/235 238/267/235 239/270/235
+f 218/264/236 288/271/236 232/272/236
+f 226/249/237 225/262/237 239/270/237 240/273/237
+f 219/251/238 218/264/238 232/272/238 233/274/238
+f 227/250/239 226/249/239 240/273/239 241/275/239
+f 220/252/240 219/251/240 233/274/240 234/276/240
+f 228/253/241 227/250/241 241/275/241 242/277/241
+f 221/254/242 220/252/242 234/276/242 235/278/242
+f 229/255/243 228/253/243 242/277/243 243/279/243
+f 222/256/244 221/254/244 235/278/244 236/280/244
+f 230/257/245 229/255/245 243/279/245 244/265/245
+f 223/258/246 222/256/246 236/280/246 237/266/246
+f 234/276/247 233/274/247 247/281/247 248/282/247
+f 242/277/248 241/275/248 255/283/248 256/284/248
+f 235/278/249 234/276/249 248/282/249 249/285/249
+f 243/279/250 242/277/250 256/284/250 257/286/250
+f 236/280/251 235/278/251 249/285/251 250/287/251
+f 244/265/252 243/279/252 257/286/252 258/288/252
+f 237/266/253 236/280/253 250/287/253 251/289/253
+f 245/261/254 244/265/254 258/288/254 259/269/254
+f 238/267/255 237/266/255 251/289/255 252/290/255
+f 203/291/256 259/269/256 273/292/256
+f 239/270/257 238/267/257 252/290/257 253/293/257
+f 232/272/258 288/294/258 246/295/258
+f 240/273/259 239/270/259 253/293/259 254/296/259
+f 233/274/260 232/272/260 246/295/260 247/281/260
+f 241/275/261 240/273/261 254/296/261 255/283/261
+f 252/290/262 251/289/262 265/297/262 266/298/262
+f 253/293/263 252/290/263 266/298/263 267/299/263
+f 246/295/264 288/300/264 260/301/264
+f 254/296/265 253/293/265 267/299/265 268/302/265
+f 247/281/266 246/295/266 260/301/266 261/303/266
+f 255/283/267 254/296/267 268/302/267 269/304/267
+f 248/282/268 247/281/268 261/303/268 262/305/268
+f 256/284/269 255/283/269 269/304/269 270/306/269
+f 249/285/270 248/282/270 262/305/270 263/307/270
+f 257/286/271 256/284/271 270/306/271 271/308/271
+f 250/287/272 249/285/272 263/307/272 264/309/272
+f 258/288/273 257/286/273 271/308/273 272/310/273
+f 251/289/274 250/287/274 264/309/274 265/297/274
+f 259/269/275 258/288/275 272/310/275 273/292/275
+f 270/306/276 269/304/276 283/311/276 284/312/276
+f 263/307/277 262/305/277 276/313/277 277/314/277
+f 271/308/278 270/306/278 284/312/278 285/315/278
+f 264/309/279 263/307/279 277/314/279 278/316/279
+f 272/310/280 271/308/280 285/315/280 286/317/280
+f 265/297/281 264/309/281 278/316/281 279/318/281
+f 273/292/282 272/310/282 286/317/282 287/319/282
+f 266/298/283 265/297/283 279/318/283 280/320/283
+f 267/299/284 266/298/284 280/320/284 281/321/284
+f 260/301/285 288/322/285 274/323/285
+f 268/302/286 267/299/286 281/321/286 282/324/286
+f 261/303/287 260/301/287 274/323/287 275/325/287
+f 269/304/288 268/302/288 282/324/288 283/311/288
+f 262/305/289 261/303/289 275/325/289 276/313/289
+f 281/321/290 280/320/290 295/326/290 296/327/290
+f 274/323/291 288/328/291 289/329/291
+f 282/324/292 281/321/292 296/327/292 297/330/292
+f 275/325/293 274/323/293 289/329/293 290/331/293
+f 283/311/294 282/324/294 297/330/294 298/332/294
+f 276/313/295 275/325/295 290/331/295 291/333/295
+f 284/312/296 283/311/296 298/332/296 299/334/296
+f 277/314/297 276/313/297 291/333/297 292/335/297
+f 285/315/298 284/312/298 299/334/298 300/336/298
+f 278/316/299 277/314/299 292/335/299 293/337/299
+f 286/317/300 285/315/300 300/336/300 301/338/300
+f 279/318/301 278/316/301 293/337/301 294/339/301
+f 287/319/302 286/317/302 301/338/302 302/340/302
+f 280/320/303 279/318/303 294/339/303 295/326/303
+f 300/336/304 299/334/304 313/341/304 314/342/304
+f 293/337/305 292/335/305 306/343/305 307/344/305
+f 301/338/306 300/336/306 314/342/306 315/345/306
+f 294/339/307 293/337/307 307/344/307 308/346/307
+f 302/340/308 301/338/308 315/345/308 316/347/308
+f 295/326/309 294/339/309 308/346/309 309/348/309
+f 296/327/310 295/326/310 309/348/310 310/349/310
+f 289/329/311 288/350/311 303/351/311
+f 297/330/312 296/327/312 310/349/312 311/352/312
+f 290/331/313 289/329/313 303/351/313 304/353/313
+f 298/332/314 297/330/314 311/352/314 312/354/314
+f 291/333/315 290/331/315 304/353/315 305/355/315
+f 299/334/316 298/332/316 312/354/316 313/341/316
+f 292/335/317 291/333/317 305/355/317 306/343/317
+f 303/351/318 288/356/318 317/357/318
+f 311/352/319 310/349/319 324/358/319 325/359/319
+f 304/353/320 303/351/320 317/357/320 318/360/320
+f 312/354/321 311/352/321 325/359/321 326/361/321
+f 305/355/322 304/353/322 318/360/322 319/362/322
+f 313/341/323 312/354/323 326/361/323 327/363/323
+f 306/343/324 305/355/324 319/362/324 320/364/324
+f 314/342/325 313/341/325 327/363/325 328/365/325
+f 307/344/326 306/343/326 320/364/326 321/366/326
+f 315/345/327 314/342/327 328/365/327 329/367/327
+f 308/346/328 307/344/328 321/366/328 322/368/328
+f 316/347/329 315/345/329 329/367/329 330/369/329
+f 309/348/330 308/346/330 322/368/330 323/370/330
+f 287/319/331 302/340/331 316/347/331 330/369/331 331/371/331 203/372/331 273/292/331
+f 310/349/332 309/348/332 323/370/332 324/358/332
+f 321/366/333 320/364/333 335/373/333 336/374/333
+f 329/367/334 328/365/334 343/375/334 344/376/334
+f 322/368/335 321/366/335 336/374/335 337/377/335
+f 330/369/336 329/367/336 344/376/336 345/378/336
+f 323/370/337 322/368/337 337/377/337 338/379/337
+f 331/371/338 330/369/338 345/378/338 346/380/338
+f 324/358/339 323/370/339 338/379/339 339/381/339
+f 317/357/340 288/382/340 332/383/340
+f 203/384/59 331/371/59 346/380/59
+f 325/359/341 324/358/341 339/381/341 340/385/341
+f 318/360/342 317/357/342 332/383/342 333/386/342
+f 326/361/343 325/359/343 340/385/343 341/387/343
+f 319/362/344 318/360/344 333/386/344 334/388/344
+f 327/363/345 326/361/345 341/387/345 342/389/345
+f 320/364/346 319/362/346 334/388/346 335/373/346
+f 328/365/347 327/363/347 342/389/347 343/375/347
+f 340/385/348 339/381/348 354/390/348 355/391/348
+f 333/386/349 332/383/349 347/392/349 348/393/349
+f 341/387/350 340/385/350 355/391/350 356/394/350
+f 334/388/351 333/386/351 348/393/351 349/395/351
+f 342/389/352 341/387/352 356/394/352 357/396/352
+f 335/373/353 334/388/353 349/395/353 350/397/353
+f 343/375/354 342/389/354 357/396/354 358/398/354
+f 336/374/355 335/373/355 350/397/355 351/399/355
+f 344/376/356 343/375/356 358/398/356 359/400/356
+f 337/377/357 336/374/357 351/399/357 352/401/357
+f 345/378/358 344/376/358 359/400/358 360/402/358
+f 338/379/359 337/377/359 352/401/359 353/403/359
+f 346/380/360 345/378/360 360/402/360 361/404/360
+f 339/381/361 338/379/361 353/403/361 354/390/361
+f 332/383/362 288/405/362 347/392/362
+f 203/406/26 346/380/26 361/404/26
+f 359/407/363 358/408/363 373/409/363 374/410/363
+f 352/411/364 351/412/364 366/413/364 367/414/364
+f 360/415/365 359/407/365 374/410/365 375/416/365
+f 353/417/366 352/411/366 367/414/366 368/418/366
+f 361/419/367 360/415/367 375/416/367 376/420/367
+f 354/421/368 353/417/368 368/418/368 369/422/368
+f 347/423/369 288/424/369 362/425/369
+f 203/426/370 361/419/370 376/420/370
+f 355/427/371 354/421/371 369/422/371 370/428/371
+f 348/429/372 347/423/372 362/425/372 363/430/372
+f 356/431/373 355/427/373 370/428/373 371/432/373
+f 349/433/374 348/429/374 363/430/374 364/434/374
+f 357/435/375 356/431/375 371/432/375 372/436/375
+f 350/437/376 349/433/376 364/434/376 365/438/376
+f 358/408/377 357/435/377 372/436/377 373/409/377
+f 351/412/378 350/437/378 365/438/378 366/413/378
+f 363/430/379 362/425/379 377/439/379 378/440/379
+f 371/432/380 370/428/380 385/441/380 386/442/380
+f 364/434/381 363/430/381 378/440/381 379/443/381
+f 372/436/382 371/432/382 386/442/382 387/444/382
+f 365/438/383 364/434/383 379/443/383 380/445/383
+f 373/409/384 372/436/384 387/444/384 388/446/384
+f 366/413/385 365/438/385 380/445/385 381/447/385
+f 374/410/386 373/409/386 388/446/386 389/448/386
+f 367/414/387 366/413/387 381/447/387 382/449/387
+f 375/416/388 374/410/388 389/448/388 390/450/388
+f 368/418/389 367/414/389 382/449/389 383/451/389
+f 376/420/390 375/416/390 390/450/390 391/452/390
+f 369/422/391 368/418/391 383/451/391 384/453/391
+f 362/425/392 288/454/392 377/439/392
+f 203/455/393 376/420/393 391/452/393
+f 370/428/394 369/422/394 384/453/394 385/441/394
+f 382/449/395 381/447/395 396/456/395 397/457/395
+f 390/450/396 389/448/396 404/458/396 405/459/396
+f 383/451/397 382/449/397 397/457/397 398/460/397
+f 391/452/398 390/450/398 405/459/398 406/461/398
+f 384/453/399 383/451/399 398/460/399 399/462/399
+f 377/439/400 288/463/400 392/464/400
+f 203/465/401 391/452/401 406/461/401
+f 385/441/402 384/453/402 399/462/402 400/466/402
+f 378/440/403 377/439/403 392/464/403 393/467/403
+f 386/442/404 385/441/404 400/466/404 401/468/404
+f 379/443/405 378/440/405 393/467/405 394/469/405
+f 387/444/406 386/442/406 401/468/406 402/470/406
+f 380/445/407 379/443/407 394/469/407 395/471/407
+f 388/446/408 387/444/408 402/470/408 403/472/408
+f 381/447/409 380/445/409 395/471/409 396/456/409
+f 389/448/410 388/446/410 403/472/410 404/458/410
+f 401/468/411 400/466/411 415/473/411 416/474/411
+f 394/469/412 393/467/412 408/475/412 409/476/412
+f 402/470/413 401/468/413 416/474/413 417/477/413
+f 395/471/414 394/469/414 409/476/414 410/478/414
+f 403/472/415 402/470/415 417/477/415 418/479/415
+f 396/456/416 395/471/416 410/478/416 411/480/416
+f 404/458/417 403/472/417 418/479/417 419/481/417
+f 397/457/418 396/456/418 411/480/418 412/482/418
+f 405/459/419 404/458/419 419/481/419 420/483/419
+f 398/460/420 397/457/420 412/482/420 413/484/420
+f 406/461/421 405/459/421 420/483/421 421/485/421
+f 399/462/422 398/460/422 413/484/422 414/486/422
+f 392/464/423 288/487/423 407/488/423
+f 203/489/424 406/461/424 421/485/424
+f 400/466/425 399/462/425 414/486/425 415/473/425
+f 393/467/426 392/464/426 407/488/426 408/475/426
+f 420/483/427 419/481/427 434/490/427 435/491/427
+f 413/484/428 412/482/428 427/492/428 428/493/428
+f 421/485/429 420/483/429 435/491/429 436/494/429
+f 414/486/430 413/484/430 428/493/430 429/495/430
+f 407/488/431 288/496/431 422/497/431
+f 203/498/151 421/485/151 436/494/151
+f 415/473/432 414/486/432 429/495/432 430/499/432
+f 408/475/433 407/488/433 422/497/433 423/500/433
+f 416/474/434 415/473/434 430/499/434 431/501/434
+f 409/476/435 408/475/435 423/500/435 424/502/435
+f 417/477/436 416/474/436 431/501/436 432/503/436
+f 410/478/437 409/476/437 424/502/437 425/504/437
+f 418/479/438 417/477/438 432/503/438 433/505/438
+f 411/480/439 410/478/439 425/504/439 426/506/439
+f 419/481/440 418/479/440 433/505/440 434/490/440
+f 412/482/441 411/480/441 426/506/441 427/492/441
+f 432/503/442 431/501/442 446/507/442 447/508/442
+f 425/504/443 424/502/443 439/509/443 440/510/443
+f 433/505/444 432/503/444 447/508/444 448/511/444
+f 426/506/445 425/504/445 440/510/445 441/512/445
+f 434/490/446 433/505/446 448/511/446 449/513/446
+f 427/492/447 426/506/447 441/512/447 442/514/447
+f 435/491/448 434/490/448 449/513/448 450/515/448
+f 428/493/449 427/492/449 442/514/449 443/516/449
+f 436/494/450 435/491/450 450/515/450 451/517/450
+f 429/495/451 428/493/451 443/516/451 444/518/451
+f 422/497/452 288/519/452 437/520/452
+f 203/521/370 436/494/370 451/517/370
+f 430/499/453 429/495/453 444/518/453 445/522/453
+f 423/500/454 422/497/454 437/520/454 438/523/454
+f 431/501/455 430/499/455 445/522/455 446/507/455
+f 424/502/456 423/500/456 438/523/456 439/509/456
+f 451/517/128 450/515/128 465/524/128 466/525/128
+f 444/518/457 443/516/457 458/526/457 459/527/457
+f 437/520/458 288/528/458 452/529/458
+f 203/530/370 451/517/370 466/525/370
+f 445/522/459 444/518/459 459/527/459 460/531/459
+f 438/523/460 437/520/460 452/529/460 453/532/460
+f 446/507/461 445/522/461 460/531/461 461/533/461
+f 439/509/462 438/523/462 453/532/462 454/534/462
+f 447/508/463 446/507/463 461/533/463 462/535/463
+f 440/510/464 439/509/464 454/534/464 455/536/464
+f 448/511/465 447/508/465 462/535/465 463/537/465
+f 441/512/466 440/510/466 455/536/466 456/538/466
+f 449/513/467 448/511/467 463/537/467 464/539/467
+f 442/514/468 441/512/468 456/538/468 457/540/468
+f 450/515/469 449/513/469 464/539/469 465/524/469
+f 443/516/470 442/514/470 457/540/470 458/526/470
+f 455/536/471 454/534/471 3/6/471 4/5/471
+f 463/537/472 462/535/472 468/1/472 469/9/472
+f 456/538/473 455/536/473 4/5/473 5/11/473
+f 464/539/474 463/537/474 469/9/474 10/13/474
+f 457/540/475 456/538/475 5/11/475 6/15/475
+f 465/524/476 464/539/476 10/13/476 470/17/476
+f 458/526/477 457/540/477 6/15/477 7/19/477
+f 459/527/478 458/526/478 7/19/478 8/21/478
+f 452/529/479 288/541/479 1/23/479
+f 466/525/480 465/524/480 470/17/480 24/18/480 25/45/480 203/542/480
+f 460/531/481 459/527/481 8/21/481 9/29/481
+f 453/532/482 452/529/482 1/23/482 2/31/482
+f 461/533/483 460/531/483 9/29/483 467/2/483
+f 454/534/484 453/532/484 2/31/484 3/6/484
+f 462/535/485 461/533/485 467/2/485 468/1/485
diff --git a/assets/models/plane.mtl b/assets/models/plane.mtl
new file mode 100644
index 0000000..d023afb
--- /dev/null
+++ b/assets/models/plane.mtl
@@ -0,0 +1,12 @@
+# Blender MTL File: 'None'
+# Material Count: 1
+
+newmtl Material.001
+Ns 323.999994
+Ka 1.000000 1.000000 1.000000
+Kd 0.066773 0.057077 0.064266
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.000000
+d 1.000000
+illum 2
diff --git a/assets/models/plane.obj b/assets/models/plane.obj
new file mode 100644
index 0000000..adf8662
--- /dev/null
+++ b/assets/models/plane.obj
@@ -0,0 +1,16 @@
+# Blender v2.90.1 OBJ File: ''
+# www.blender.org
+mtllib plane.mtl
+o Plane
+v -10.000000 0.000000 10.000000
+v 10.000000 0.000000 10.000000
+v -10.000000 0.000000 -10.000000
+v 10.000000 0.000000 -10.000000
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vn 0.0000 1.0000 0.0000
+usemtl Material.001
+s off
+f 1/1/1 2/2/1 4/3/1 3/4/1
diff --git a/assets/models/sphere.mtl b/assets/models/sphere.mtl
new file mode 100644
index 0000000..aa26edb
--- /dev/null
+++ b/assets/models/sphere.mtl
@@ -0,0 +1,12 @@
+# Blender MTL File: 'None'
+# Material Count: 1
+
+newmtl Material.001
+Ns 323.999994
+Ka 1.000000 1.000000 1.000000
+Kd 0.015470 0.800000 0.000000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.000000
+d 1.000000
+illum 2
diff --git a/assets/models/sphere.obj b/assets/models/sphere.obj
new file mode 100644
index 0000000..598cf3c
--- /dev/null
+++ b/assets/models/sphere.obj
@@ -0,0 +1,2071 @@
+# Blender v2.90.1 OBJ File: ''
+# www.blender.org
+mtllib sphere.mtl
+o Sphere
+v 0.000000 0.980785 -0.195090
+v 0.000000 0.923880 -0.382683
+v 0.000000 0.831470 -0.555570
+v 0.000000 0.707107 -0.707107
+v 0.000000 0.555570 -0.831470
+v 0.000000 0.382683 -0.923880
+v 0.000000 0.195090 -0.980785
+v 0.000000 0.000000 -1.000000
+v 0.000000 -0.195090 -0.980785
+v 0.000000 -0.831470 -0.555570
+v 0.038060 0.980785 -0.191342
+v 0.074658 0.923880 -0.375330
+v 0.108386 0.831470 -0.544895
+v 0.137950 0.707107 -0.693520
+v 0.162212 0.555570 -0.815493
+v 0.180240 0.382683 -0.906127
+v 0.191342 0.195090 -0.961940
+v 0.195090 0.000000 -0.980785
+v 0.191342 -0.195090 -0.961940
+v 0.180240 -0.382683 -0.906127
+v 0.162212 -0.555570 -0.815493
+v 0.137950 -0.707107 -0.693520
+v 0.108386 -0.831470 -0.544895
+v 0.074658 -0.923880 -0.375330
+v 0.038060 -0.980785 -0.191341
+v 0.074658 0.980785 -0.180240
+v 0.146447 0.923880 -0.353553
+v 0.212608 0.831470 -0.513280
+v 0.270598 0.707107 -0.653281
+v 0.318190 0.555570 -0.768178
+v 0.353553 0.382683 -0.853553
+v 0.375330 0.195090 -0.906127
+v 0.382684 0.000000 -0.923879
+v 0.375330 -0.195090 -0.906127
+v 0.353554 -0.382683 -0.853553
+v 0.318190 -0.555570 -0.768178
+v 0.270598 -0.707107 -0.653281
+v 0.212608 -0.831470 -0.513280
+v 0.146447 -0.923880 -0.353553
+v 0.074658 -0.980785 -0.180240
+v 0.108387 0.980785 -0.162212
+v 0.212608 0.923880 -0.318190
+v 0.308658 0.831470 -0.461940
+v 0.392848 0.707107 -0.587938
+v 0.461940 0.555570 -0.691342
+v 0.513280 0.382683 -0.768178
+v 0.544895 0.195090 -0.815493
+v 0.555570 0.000000 -0.831469
+v 0.544895 -0.195090 -0.815493
+v 0.513280 -0.382683 -0.768178
+v 0.461940 -0.555570 -0.691342
+v 0.392848 -0.707107 -0.587938
+v 0.308658 -0.831470 -0.461940
+v 0.212608 -0.923880 -0.318189
+v 0.108386 -0.980785 -0.162211
+v 0.137950 0.980785 -0.137950
+v 0.270598 0.923880 -0.270598
+v 0.392848 0.831470 -0.392847
+v 0.500000 0.707107 -0.500000
+v 0.587938 0.555570 -0.587938
+v 0.653282 0.382683 -0.653281
+v 0.693520 0.195090 -0.693520
+v 0.707107 0.000000 -0.707107
+v 0.693520 -0.195090 -0.693520
+v 0.653282 -0.382683 -0.653281
+v 0.587938 -0.555570 -0.587938
+v 0.500000 -0.707107 -0.500000
+v 0.392848 -0.831470 -0.392847
+v 0.270598 -0.923880 -0.270598
+v 0.137950 -0.980785 -0.137949
+v 0.162212 0.980785 -0.108386
+v 0.318190 0.923880 -0.212607
+v 0.461940 0.831470 -0.308658
+v 0.587938 0.707107 -0.392847
+v 0.691342 0.555570 -0.461940
+v 0.768178 0.382683 -0.513280
+v 0.815493 0.195090 -0.544895
+v 0.831470 0.000000 -0.555570
+v 0.815493 -0.195090 -0.544895
+v 0.768178 -0.382683 -0.513280
+v 0.691342 -0.555570 -0.461940
+v 0.587938 -0.707107 -0.392847
+v 0.461940 -0.831470 -0.308658
+v 0.318190 -0.923880 -0.212607
+v 0.162212 -0.980785 -0.108386
+v 0.180240 0.980785 -0.074658
+v 0.353554 0.923880 -0.146446
+v 0.513280 0.831470 -0.212607
+v 0.653282 0.707107 -0.270598
+v 0.768178 0.555570 -0.318189
+v 0.853554 0.382683 -0.353553
+v 0.906128 0.195090 -0.375330
+v 0.923880 0.000000 -0.382683
+v 0.906128 -0.195090 -0.375330
+v 0.853554 -0.382683 -0.353553
+v 0.768178 -0.555570 -0.318189
+v 0.653282 -0.707107 -0.270598
+v 0.513280 -0.831470 -0.212607
+v 0.353554 -0.923880 -0.146446
+v 0.180240 -0.980785 -0.074658
+v 0.191342 0.980785 -0.038060
+v 0.375331 0.923880 -0.074658
+v 0.544895 0.831470 -0.108386
+v 0.693520 0.707107 -0.137949
+v 0.815493 0.555570 -0.162211
+v 0.906128 0.382683 -0.180240
+v 0.961940 0.195090 -0.191341
+v 0.980785 0.000000 -0.195090
+v 0.961940 -0.195090 -0.191341
+v 0.906128 -0.382683 -0.180240
+v 0.815493 -0.555570 -0.162211
+v 0.693520 -0.707107 -0.137949
+v 0.544895 -0.831470 -0.108386
+v 0.375330 -0.923880 -0.074658
+v 0.191342 -0.980785 -0.038060
+v 0.195091 0.980785 0.000000
+v 0.382684 0.923880 0.000000
+v 0.555570 0.831470 0.000000
+v 0.707107 0.707107 0.000000
+v 0.831470 0.555570 0.000000
+v 0.923880 0.382683 0.000000
+v 0.980785 0.195090 0.000000
+v 1.000000 0.000000 0.000000
+v 0.980785 -0.195090 0.000000
+v 0.923880 -0.382683 0.000000
+v 0.831470 -0.555570 0.000000
+v 0.707107 -0.707107 0.000000
+v 0.555570 -0.831470 0.000000
+v 0.382684 -0.923880 0.000000
+v 0.195090 -0.980785 0.000000
+v 0.191342 0.980785 0.038061
+v 0.375331 0.923880 0.074658
+v 0.544895 0.831470 0.108387
+v 0.693520 0.707107 0.137950
+v 0.815493 0.555570 0.162212
+v 0.906128 0.382683 0.180240
+v 0.961940 0.195090 0.191342
+v 0.980785 0.000000 0.195091
+v 0.961940 -0.195090 0.191342
+v 0.906128 -0.382683 0.180240
+v 0.815493 -0.555570 0.162212
+v 0.693520 -0.707107 0.137950
+v 0.544895 -0.831470 0.108387
+v 0.375330 -0.923880 0.074658
+v 0.191342 -0.980785 0.038061
+v 0.180240 0.980785 0.074658
+v 0.353554 0.923880 0.146447
+v 0.513280 0.831470 0.212608
+v 0.653282 0.707107 0.270598
+v 0.768178 0.555570 0.318190
+v 0.853554 0.382683 0.353554
+v 0.906127 0.195090 0.375331
+v 0.923880 0.000000 0.382684
+v 0.906127 -0.195090 0.375331
+v 0.853554 -0.382683 0.353554
+v 0.768178 -0.555570 0.318190
+v 0.653282 -0.707107 0.270598
+v 0.513280 -0.831470 0.212608
+v 0.353553 -0.923880 0.146447
+v 0.180240 -0.980785 0.074658
+v 0.162212 0.980785 0.108387
+v 0.318190 0.923880 0.212608
+v 0.461940 0.831470 0.308659
+v 0.587938 0.707107 0.392848
+v 0.691342 0.555570 0.461940
+v 0.768178 0.382683 0.513280
+v 0.815493 0.195090 0.544895
+v 0.831470 0.000000 0.555571
+v 0.815493 -0.195090 0.544895
+v 0.768178 -0.382683 0.513280
+v 0.691342 -0.555570 0.461940
+v 0.587938 -0.707107 0.392848
+v 0.461940 -0.831470 0.308659
+v 0.318190 -0.923880 0.212608
+v 0.162212 -0.980785 0.108387
+v 0.137950 0.980785 0.137950
+v 0.270598 0.923880 0.270599
+v 0.392848 0.831470 0.392848
+v 0.500000 0.707107 0.500000
+v 0.587938 0.555570 0.587938
+v 0.653282 0.382683 0.653282
+v 0.693520 0.195090 0.693520
+v 0.707107 0.000000 0.707107
+v 0.693520 -0.195090 0.693520
+v 0.653282 -0.382683 0.653282
+v 0.587938 -0.555570 0.587938
+v 0.500000 -0.707107 0.500000
+v 0.392848 -0.831470 0.392848
+v 0.270598 -0.923880 0.270598
+v 0.137950 -0.980785 0.137950
+v 0.108386 0.980785 0.162212
+v 0.212608 0.923880 0.318190
+v 0.308658 0.831470 0.461940
+v 0.392848 0.707107 0.587938
+v 0.461940 0.555570 0.691342
+v 0.513280 0.382683 0.768178
+v 0.544895 0.195090 0.815493
+v 0.555570 0.000000 0.831470
+v 0.544895 -0.195090 0.815493
+v 0.513280 -0.382683 0.768178
+v 0.461940 -0.555570 0.691342
+v 0.392848 -0.707107 0.587938
+v 0.308658 -0.831470 0.461940
+v 0.212608 -0.923880 0.318190
+v 0.108386 -0.980785 0.162212
+v 0.000000 -1.000000 0.000000
+v 0.074658 0.980785 0.180240
+v 0.146447 0.923880 0.353554
+v 0.212608 0.831470 0.513280
+v 0.270598 0.707107 0.653282
+v 0.318190 0.555570 0.768178
+v 0.353553 0.382683 0.853554
+v 0.375330 0.195090 0.906128
+v 0.382683 0.000000 0.923880
+v 0.375330 -0.195090 0.906128
+v 0.353553 -0.382683 0.853554
+v 0.318190 -0.555570 0.768178
+v 0.270598 -0.707107 0.653282
+v 0.212608 -0.831470 0.513280
+v 0.146447 -0.923880 0.353554
+v 0.074658 -0.980785 0.180240
+v 0.038060 0.980785 0.191342
+v 0.074658 0.923880 0.375331
+v 0.108386 0.831470 0.544896
+v 0.137950 0.707107 0.693520
+v 0.162212 0.555570 0.815493
+v 0.180240 0.382683 0.906128
+v 0.191342 0.195090 0.961940
+v 0.195090 0.000000 0.980786
+v 0.191342 -0.195090 0.961940
+v 0.180240 -0.382683 0.906128
+v 0.162212 -0.555570 0.815493
+v 0.137950 -0.707107 0.693520
+v 0.108386 -0.831470 0.544895
+v 0.074658 -0.923880 0.375331
+v 0.038060 -0.980785 0.191342
+v -0.000000 0.980785 0.195091
+v 0.000000 0.923880 0.382684
+v 0.000000 0.831470 0.555571
+v -0.000000 0.707107 0.707107
+v -0.000000 0.555570 0.831470
+v 0.000000 0.382683 0.923880
+v -0.000000 0.195090 0.980785
+v -0.000000 0.000000 1.000000
+v -0.000000 -0.195090 0.980785
+v 0.000000 -0.382683 0.923880
+v -0.000000 -0.555570 0.831470
+v -0.000000 -0.707107 0.707107
+v -0.000000 -0.831470 0.555570
+v 0.000000 -0.923880 0.382684
+v 0.000000 -0.980785 0.195091
+v -0.038060 0.980785 0.191342
+v -0.074658 0.923880 0.375331
+v -0.108386 0.831470 0.544896
+v -0.137950 0.707107 0.693520
+v -0.162212 0.555570 0.815493
+v -0.180240 0.382683 0.906128
+v -0.191342 0.195090 0.961940
+v -0.195090 0.000000 0.980786
+v -0.191342 -0.195090 0.961940
+v -0.180240 -0.382683 0.906128
+v -0.162212 -0.555570 0.815493
+v -0.137950 -0.707107 0.693520
+v -0.108386 -0.831470 0.544895
+v -0.074658 -0.923880 0.375331
+v -0.038060 -0.980785 0.191342
+v -0.074658 0.980785 0.180240
+v -0.146447 0.923880 0.353554
+v -0.212608 0.831470 0.513280
+v -0.270598 0.707107 0.653282
+v -0.318190 0.555570 0.768178
+v -0.353553 0.382683 0.853554
+v -0.375330 0.195090 0.906127
+v -0.382684 0.000000 0.923880
+v -0.375330 -0.195090 0.906127
+v -0.353553 -0.382683 0.853554
+v -0.318190 -0.555570 0.768178
+v -0.270598 -0.707107 0.653282
+v -0.212608 -0.831470 0.513280
+v -0.146447 -0.923880 0.353554
+v -0.074658 -0.980785 0.180240
+v -0.108386 0.980785 0.162212
+v -0.212608 0.923880 0.318190
+v -0.308658 0.831470 0.461940
+v -0.392847 0.707107 0.587938
+v -0.461940 0.555570 0.691342
+v -0.513280 0.382683 0.768178
+v -0.544895 0.195090 0.815493
+v -0.555570 0.000000 0.831470
+v -0.544895 -0.195090 0.815493
+v -0.513280 -0.382683 0.768178
+v -0.461940 -0.555570 0.691342
+v -0.392847 -0.707107 0.587938
+v -0.308658 -0.831470 0.461940
+v -0.212607 -0.923880 0.318190
+v -0.108386 -0.980785 0.162212
+v -0.000000 1.000000 0.000001
+v -0.137950 0.980785 0.137950
+v -0.270598 0.923880 0.270598
+v -0.392848 0.831470 0.392848
+v -0.500000 0.707107 0.500000
+v -0.587938 0.555570 0.587938
+v -0.653281 0.382683 0.653282
+v -0.693520 0.195090 0.693520
+v -0.707107 0.000000 0.707107
+v -0.693520 -0.195090 0.693520
+v -0.653281 -0.382683 0.653282
+v -0.587938 -0.555570 0.587938
+v -0.500000 -0.707107 0.500000
+v -0.392847 -0.831470 0.392848
+v -0.270598 -0.923880 0.270598
+v -0.137950 -0.980785 0.137950
+v -0.162212 0.980785 0.108387
+v -0.318190 0.923880 0.212608
+v -0.461940 0.831470 0.308659
+v -0.587938 0.707107 0.392848
+v -0.691342 0.555570 0.461940
+v -0.768178 0.382683 0.513280
+v -0.815493 0.195090 0.544895
+v -0.831470 0.000000 0.555570
+v -0.815493 -0.195090 0.544895
+v -0.768178 -0.382683 0.513280
+v -0.691342 -0.555570 0.461940
+v -0.587938 -0.707107 0.392848
+v -0.461940 -0.831470 0.308658
+v -0.318190 -0.923880 0.212608
+v -0.162212 -0.980785 0.108387
+v -0.180240 0.980785 0.074658
+v -0.353553 0.923880 0.146447
+v -0.513280 0.831470 0.212608
+v -0.653281 0.707107 0.270598
+v -0.768177 0.555570 0.318190
+v -0.853553 0.382683 0.353554
+v -0.906127 0.195090 0.375330
+v -0.923880 0.000000 0.382684
+v -0.906127 -0.195090 0.375330
+v -0.853553 -0.382683 0.353554
+v -0.768177 -0.555570 0.318190
+v -0.653281 -0.707107 0.270598
+v -0.513280 -0.831470 0.212608
+v -0.353553 -0.923880 0.146447
+v -0.180240 -0.980785 0.074658
+v -0.191342 0.980785 0.038061
+v -0.375330 0.923880 0.074658
+v -0.544895 0.831470 0.108387
+v -0.693520 0.707107 0.137950
+v -0.815493 0.555570 0.162212
+v -0.906127 0.382683 0.180240
+v -0.961939 0.195090 0.191342
+v -0.980785 0.000000 0.195090
+v -0.961939 -0.195090 0.191342
+v -0.906127 -0.382683 0.180240
+v -0.815493 -0.555570 0.162212
+v -0.693520 -0.707107 0.137950
+v -0.544895 -0.831470 0.108387
+v -0.375330 -0.923880 0.074658
+v -0.191342 -0.980785 0.038061
+v -0.195090 0.980785 0.000000
+v -0.382683 0.923880 0.000000
+v -0.555570 0.831470 0.000000
+v -0.707107 0.707107 0.000000
+v -0.831469 0.555570 0.000000
+v -0.923879 0.382683 0.000000
+v -0.980785 0.195090 0.000000
+v -1.000000 0.000000 0.000000
+v -0.980785 -0.195090 0.000000
+v -0.923879 -0.382683 0.000000
+v -0.831469 -0.555570 0.000000
+v -0.707107 -0.707107 0.000000
+v -0.555570 -0.831470 0.000000
+v -0.382683 -0.923880 0.000000
+v -0.195090 -0.980785 0.000000
+v -0.191342 0.980785 -0.038060
+v -0.375330 0.923880 -0.074658
+v -0.544895 0.831470 -0.108386
+v -0.693520 0.707107 -0.137949
+v -0.815493 0.555570 -0.162211
+v -0.906127 0.382683 -0.180240
+v -0.961939 0.195090 -0.191342
+v -0.980785 0.000000 -0.195090
+v -0.961939 -0.195090 -0.191342
+v -0.906127 -0.382683 -0.180240
+v -0.815493 -0.555570 -0.162211
+v -0.693520 -0.707107 -0.137949
+v -0.544895 -0.831470 -0.108386
+v -0.375330 -0.923880 -0.074658
+v -0.191342 -0.980785 -0.038060
+v -0.180240 0.980785 -0.074658
+v -0.353553 0.923880 -0.146446
+v -0.513280 0.831470 -0.212607
+v -0.653281 0.707107 -0.270598
+v -0.768177 0.555570 -0.318189
+v -0.853553 0.382683 -0.353553
+v -0.906127 0.195090 -0.375330
+v -0.923879 0.000000 -0.382683
+v -0.906127 -0.195090 -0.375330
+v -0.853553 -0.382683 -0.353553
+v -0.768177 -0.555570 -0.318189
+v -0.653281 -0.707107 -0.270598
+v -0.513280 -0.831470 -0.212607
+v -0.353553 -0.923880 -0.146446
+v -0.180240 -0.980785 -0.074657
+v -0.162212 0.980785 -0.108386
+v -0.318190 0.923880 -0.212607
+v -0.461940 0.831470 -0.308658
+v -0.587938 0.707107 -0.392847
+v -0.691341 0.555570 -0.461939
+v -0.768178 0.382683 -0.513280
+v -0.815493 0.195090 -0.544895
+v -0.831469 0.000000 -0.555570
+v -0.815493 -0.195090 -0.544895
+v -0.768178 -0.382683 -0.513280
+v -0.691341 -0.555570 -0.461939
+v -0.587938 -0.707107 -0.392847
+v -0.461940 -0.831470 -0.308658
+v -0.318189 -0.923880 -0.212607
+v -0.162212 -0.980785 -0.108386
+v -0.137950 0.980785 -0.137949
+v -0.270598 0.923880 -0.270598
+v -0.392847 0.831470 -0.392847
+v -0.500000 0.707107 -0.500000
+v -0.587937 0.555570 -0.587937
+v -0.653281 0.382683 -0.653281
+v -0.693519 0.195090 -0.693519
+v -0.707106 0.000000 -0.707106
+v -0.693519 -0.195090 -0.693519
+v -0.653281 -0.382683 -0.653281
+v -0.587937 -0.555570 -0.587937
+v -0.500000 -0.707107 -0.500000
+v -0.392847 -0.831470 -0.392847
+v -0.270598 -0.923880 -0.270598
+v -0.137950 -0.980785 -0.137949
+v -0.108386 0.980785 -0.162211
+v -0.212607 0.923880 -0.318189
+v -0.308658 0.831470 -0.461939
+v -0.392847 0.707107 -0.587937
+v -0.461939 0.555570 -0.691341
+v -0.513280 0.382683 -0.768177
+v -0.544895 0.195090 -0.815492
+v -0.555570 0.000000 -0.831469
+v -0.544895 -0.195090 -0.815492
+v -0.513280 -0.382683 -0.768177
+v -0.461939 -0.555570 -0.691341
+v -0.392847 -0.707107 -0.587937
+v -0.308658 -0.831470 -0.461939
+v -0.212607 -0.923880 -0.318189
+v -0.108386 -0.980785 -0.162211
+v -0.074658 0.980785 -0.180240
+v -0.146447 0.923880 -0.353553
+v -0.212607 0.831470 -0.513280
+v -0.270598 0.707107 -0.653281
+v -0.318189 0.555570 -0.768177
+v -0.353553 0.382683 -0.853553
+v -0.375330 0.195090 -0.906127
+v -0.382683 0.000000 -0.923879
+v -0.375330 -0.195090 -0.906127
+v -0.353553 -0.382683 -0.853553
+v -0.318189 -0.555570 -0.768177
+v -0.270598 -0.707107 -0.653281
+v -0.212607 -0.831470 -0.513279
+v -0.146446 -0.923880 -0.353553
+v -0.074658 -0.980785 -0.180240
+v -0.038060 0.980785 -0.191342
+v -0.074658 0.923880 -0.375330
+v -0.108386 0.831470 -0.544895
+v -0.137950 0.707107 -0.693520
+v -0.162211 0.555570 -0.815492
+v -0.180240 0.382683 -0.906127
+v -0.191341 0.195090 -0.961939
+v -0.195090 0.000000 -0.980785
+v -0.191341 -0.195090 -0.961939
+v -0.180240 -0.382683 -0.906127
+v -0.162211 -0.555570 -0.815492
+v -0.137950 -0.707107 -0.693520
+v -0.108386 -0.831470 -0.544895
+v -0.074658 -0.923880 -0.375330
+v -0.038060 -0.980785 -0.191341
+v 0.000000 -0.382683 -0.923879
+v 0.000000 -0.555570 -0.831469
+v 0.000000 -0.707107 -0.707106
+v 0.000000 -0.923880 -0.382683
+v 0.000000 -0.980785 -0.195090
+vt 0.750000 0.500000
+vt 0.750000 0.562500
+vt 0.718750 0.562500
+vt 0.718750 0.500000
+vt 0.750000 0.937500
+vt 0.734375 1.000000
+vt 0.718750 0.937500
+vt 0.734375 0.000000
+vt 0.750000 0.062500
+vt 0.718750 0.062500
+vt 0.750000 0.437500
+vt 0.718750 0.437500
+vt 0.750000 0.875000
+vt 0.718750 0.875000
+vt 0.750000 0.375000
+vt 0.718750 0.375000
+vt 0.750000 0.812500
+vt 0.718750 0.812500
+vt 0.750000 0.312500
+vt 0.718750 0.312500
+vt 0.750000 0.750000
+vt 0.718750 0.750000
+vt 0.750000 0.250000
+vt 0.718750 0.250000
+vt 0.750000 0.687500
+vt 0.718750 0.687500
+vt 0.750000 0.187500
+vt 0.718750 0.187500
+vt 0.750000 0.625000
+vt 0.718750 0.625000
+vt 0.750000 0.125000
+vt 0.718750 0.125000
+vt 0.687500 0.625000
+vt 0.687500 0.562500
+vt 0.687500 0.125000
+vt 0.687500 0.062500
+vt 0.687500 0.500000
+vt 0.703125 1.000000
+vt 0.687500 0.937500
+vt 0.703125 0.000000
+vt 0.687500 0.437500
+vt 0.687500 0.875000
+vt 0.687500 0.375000
+vt 0.687500 0.812500
+vt 0.687500 0.312500
+vt 0.687500 0.750000
+vt 0.687500 0.250000
+vt 0.687500 0.687500
+vt 0.687500 0.187500
+vt 0.656250 0.375000
+vt 0.656250 0.312500
+vt 0.656250 0.812500
+vt 0.656250 0.750000
+vt 0.656250 0.250000
+vt 0.656250 0.687500
+vt 0.656250 0.187500
+vt 0.656250 0.625000
+vt 0.656250 0.125000
+vt 0.656250 0.562500
+vt 0.656250 0.062500
+vt 0.656250 0.500000
+vt 0.671875 1.000000
+vt 0.656250 0.937500
+vt 0.671875 0.000000
+vt 0.656250 0.437500
+vt 0.656250 0.875000
+vt 0.625000 0.125000
+vt 0.625000 0.062500
+vt 0.625000 0.562500
+vt 0.625000 0.500000
+vt 0.640625 1.000000
+vt 0.625000 0.937500
+vt 0.640625 0.000000
+vt 0.625000 0.437500
+vt 0.625000 0.875000
+vt 0.625000 0.375000
+vt 0.625000 0.812500
+vt 0.625000 0.312500
+vt 0.625000 0.750000
+vt 0.625000 0.250000
+vt 0.625000 0.687500
+vt 0.625000 0.187500
+vt 0.625000 0.625000
+vt 0.593750 0.812500
+vt 0.593750 0.750000
+vt 0.593750 0.312500
+vt 0.593750 0.250000
+vt 0.593750 0.687500
+vt 0.593750 0.187500
+vt 0.593750 0.625000
+vt 0.593750 0.125000
+vt 0.593750 0.562500
+vt 0.593750 0.062500
+vt 0.593750 0.500000
+vt 0.609375 1.000000
+vt 0.593750 0.937500
+vt 0.609375 0.000000
+vt 0.593750 0.437500
+vt 0.593750 0.875000
+vt 0.593750 0.375000
+vt 0.562500 0.562500
+vt 0.562500 0.500000
+vt 0.578125 1.000000
+vt 0.562500 0.937500
+vt 0.578125 0.000000
+vt 0.562500 0.062500
+vt 0.562500 0.437500
+vt 0.562500 0.875000
+vt 0.562500 0.375000
+vt 0.562500 0.812500
+vt 0.562500 0.312500
+vt 0.562500 0.750000
+vt 0.562500 0.250000
+vt 0.562500 0.687500
+vt 0.562500 0.187500
+vt 0.562500 0.625000
+vt 0.562500 0.125000
+vt 0.531250 0.312500
+vt 0.531250 0.250000
+vt 0.531250 0.750000
+vt 0.531250 0.687500
+vt 0.531250 0.187500
+vt 0.531250 0.625000
+vt 0.531250 0.125000
+vt 0.531250 0.562500
+vt 0.531250 0.062500
+vt 0.531250 0.500000
+vt 0.546875 1.000000
+vt 0.531250 0.937500
+vt 0.546875 0.000000
+vt 0.531250 0.437500
+vt 0.531250 0.875000
+vt 0.531250 0.375000
+vt 0.531250 0.812500
+vt 0.515625 0.000000
+vt 0.500000 0.062500
+vt 0.500000 0.500000
+vt 0.500000 0.437500
+vt 0.500000 0.937500
+vt 0.500000 0.875000
+vt 0.500000 0.375000
+vt 0.500000 0.812500
+vt 0.500000 0.312500
+vt 0.500000 0.750000
+vt 0.500000 0.250000
+vt 0.500000 0.687500
+vt 0.500000 0.187500
+vt 0.500000 0.625000
+vt 0.500000 0.125000
+vt 0.500000 0.562500
+vt 0.515625 1.000000
+vt 0.468750 0.250000
+vt 0.468750 0.187500
+vt 0.468750 0.687500
+vt 0.468750 0.625000
+vt 0.468750 0.125000
+vt 0.468750 0.562500
+vt 0.468750 0.062500
+vt 0.468750 0.500000
+vt 0.484374 1.000000
+vt 0.468750 0.937500
+vt 0.484375 0.000000
+vt 0.468750 0.437500
+vt 0.468750 0.875000
+vt 0.468750 0.375000
+vt 0.468750 0.812500
+vt 0.468750 0.312500
+vt 0.468750 0.750000
+vt 0.437500 0.937500
+vt 0.437500 0.875000
+vt 0.437500 0.437500
+vt 0.437500 0.375000
+vt 0.437500 0.812500
+vt 0.437500 0.312500
+vt 0.437500 0.750000
+vt 0.437500 0.250000
+vt 0.437500 0.687500
+vt 0.437500 0.187500
+vt 0.437500 0.625000
+vt 0.437500 0.125000
+vt 0.437500 0.562500
+vt 0.437500 0.062500
+vt 0.437500 0.500000
+vt 0.453124 1.000000
+vt 0.453125 0.000000
+vt 0.406250 0.687500
+vt 0.406250 0.625000
+vt 0.406250 0.187500
+vt 0.406250 0.125000
+vt 0.406250 0.562500
+vt 0.406250 0.062500
+vt 0.406250 0.500000
+vt 0.421874 1.000000
+vt 0.406250 0.937500
+vt 0.421875 0.000000
+vt 0.406250 0.437500
+vt 0.406250 0.875000
+vt 0.406250 0.375000
+vt 0.406250 0.812500
+vt 0.406250 0.312500
+vt 0.406250 0.750000
+vt 0.406250 0.250000
+vt 0.375000 0.437500
+vt 0.375000 0.375000
+vt 0.375000 0.875000
+vt 0.375000 0.812500
+vt 0.375000 0.312500
+vt 0.375000 0.750000
+vt 0.375000 0.250000
+vt 0.375000 0.687500
+vt 0.375000 0.187500
+vt 0.375000 0.625000
+vt 0.375000 0.125000
+vt 0.375000 0.562500
+vt 0.375000 0.062500
+vt 0.375000 0.500000
+vt 0.390625 1.000000
+vt 0.375000 0.937500
+vt 0.390625 0.000000
+vt 0.343750 0.187500
+vt 0.343750 0.125000
+vt 0.343750 0.625000
+vt 0.343750 0.562500
+vt 0.343750 0.062500
+vt 0.343750 0.500000
+vt 0.359375 1.000000
+vt 0.343750 0.937500
+vt 0.359375 0.000000
+vt 0.343750 0.437500
+vt 0.343750 0.875000
+vt 0.343750 0.375000
+vt 0.343750 0.812500
+vt 0.343750 0.312500
+vt 0.343750 0.750000
+vt 0.343750 0.250000
+vt 0.343750 0.687500
+vt 0.312500 0.875000
+vt 0.312500 0.812500
+vt 0.312500 0.375000
+vt 0.312500 0.312500
+vt 0.312500 0.750000
+vt 0.312500 0.250000
+vt 0.312500 0.687500
+vt 0.312500 0.187500
+vt 0.312500 0.625000
+vt 0.312500 0.125000
+vt 0.312500 0.562500
+vt 0.312500 0.062500
+vt 0.312500 0.500000
+vt 0.328125 1.000000
+vt 0.312500 0.937500
+vt 0.328125 0.000000
+vt 0.312500 0.437500
+vt 0.281250 0.625000
+vt 0.281250 0.562500
+vt 0.281250 0.125000
+vt 0.281250 0.062500
+vt 0.281250 0.500000
+vt 0.296875 1.000000
+vt 0.281250 0.937500
+vt 0.296875 0.000000
+vt 0.281250 0.437500
+vt 0.281250 0.875000
+vt 0.281250 0.375000
+vt 0.281250 0.812500
+vt 0.281250 0.312500
+vt 0.281250 0.750000
+vt 0.281250 0.250000
+vt 0.281250 0.687500
+vt 0.281250 0.187500
+vt 0.250000 0.375000
+vt 0.250000 0.312500
+vt 0.250000 0.812500
+vt 0.250000 0.750000
+vt 0.250000 0.250000
+vt 0.250000 0.687500
+vt 0.250000 0.187500
+vt 0.250000 0.625000
+vt 0.250000 0.125000
+vt 0.250000 0.562500
+vt 0.250000 0.062500
+vt 0.250000 0.500000
+vt 0.265625 1.000000
+vt 0.250000 0.937500
+vt 0.265625 0.000000
+vt 0.250000 0.437500
+vt 0.250000 0.875000
+vt 0.218750 0.125000
+vt 0.218750 0.062500
+vt 0.218750 0.562500
+vt 0.218750 0.500000
+vt 0.234375 1.000000
+vt 0.218750 0.937500
+vt 0.234375 0.000000
+vt 0.218750 0.437500
+vt 0.218750 0.875000
+vt 0.218750 0.375000
+vt 0.218750 0.812500
+vt 0.218750 0.312500
+vt 0.218750 0.750000
+vt 0.218750 0.250000
+vt 0.218750 0.687500
+vt 0.218750 0.187500
+vt 0.218750 0.625000
+vt 0.187500 0.312500
+vt 0.187500 0.250000
+vt 0.187500 0.750000
+vt 0.187500 0.687500
+vt 0.187500 0.187500
+vt 0.187500 0.625000
+vt 0.187500 0.125000
+vt 0.187500 0.562500
+vt 0.187500 0.062500
+vt 0.187500 0.500000
+vt 0.203125 1.000000
+vt 0.187500 0.937500
+vt 0.203125 0.000000
+vt 0.187500 0.437500
+vt 0.187500 0.875000
+vt 0.187500 0.375000
+vt 0.187500 0.812500
+vt 0.171875 1.000000
+vt 0.156250 0.937500
+vt 0.171875 0.000000
+vt 0.156250 0.062500
+vt 0.156250 0.500000
+vt 0.156250 0.437500
+vt 0.156250 0.875000
+vt 0.156250 0.375000
+vt 0.156250 0.812500
+vt 0.156250 0.312500
+vt 0.156250 0.750000
+vt 0.156250 0.250000
+vt 0.156250 0.687500
+vt 0.156250 0.187500
+vt 0.156250 0.625000
+vt 0.156250 0.125000
+vt 0.156250 0.562500
+vt 0.125000 0.750000
+vt 0.125000 0.687500
+vt 0.125000 0.250000
+vt 0.125000 0.187500
+vt 0.125000 0.625000
+vt 0.125000 0.125000
+vt 0.125000 0.562500
+vt 0.125000 0.062500
+vt 0.125000 0.500000
+vt 0.140625 1.000000
+vt 0.125000 0.937500
+vt 0.140625 0.000000
+vt 0.125000 0.437500
+vt 0.125000 0.875000
+vt 0.125000 0.375000
+vt 0.125000 0.812500
+vt 0.125000 0.312500
+vt 0.093750 0.500000
+vt 0.093750 0.437500
+vt 0.093750 0.937500
+vt 0.093750 0.875000
+vt 0.093750 0.375000
+vt 0.093750 0.812500
+vt 0.093750 0.312500
+vt 0.093750 0.750000
+vt 0.093750 0.250000
+vt 0.093750 0.687500
+vt 0.093750 0.187500
+vt 0.093750 0.625000
+vt 0.093750 0.125000
+vt 0.093750 0.562500
+vt 0.093750 0.062500
+vt 0.109375 1.000000
+vt 0.109375 0.000000
+vt 0.062500 0.250000
+vt 0.062500 0.187500
+vt 0.062500 0.687500
+vt 0.062500 0.625000
+vt 0.062500 0.125000
+vt 0.062500 0.562500
+vt 0.062500 0.062500
+vt 0.062500 0.500000
+vt 0.078125 1.000000
+vt 0.062500 0.937500
+vt 0.078125 0.000000
+vt 0.062500 0.437500
+vt 0.062500 0.875000
+vt 0.062500 0.375000
+vt 0.062500 0.812500
+vt 0.062500 0.312500
+vt 0.062500 0.750000
+vt 0.031250 0.937500
+vt 0.031250 0.875000
+vt 0.031250 0.437500
+vt 0.031250 0.375000
+vt 0.031250 0.812500
+vt 0.031250 0.312500
+vt 0.031250 0.750000
+vt 0.031250 0.250000
+vt 0.031250 0.687500
+vt 0.031250 0.187500
+vt 0.031250 0.625000
+vt 0.031250 0.125000
+vt 0.031250 0.562500
+vt 0.031250 0.062500
+vt 0.031250 0.500000
+vt 0.046875 1.000000
+vt 0.046875 0.000000
+vt 0.000000 0.687500
+vt 0.000000 0.625000
+vt 0.000000 0.187500
+vt 0.000000 0.125000
+vt 0.000000 0.562500
+vt 0.000000 0.062500
+vt 0.000000 0.500000
+vt 0.015625 1.000000
+vt 0.000000 0.937500
+vt 0.015625 0.000000
+vt 0.000000 0.437500
+vt 0.000000 0.875000
+vt 0.000000 0.375000
+vt 0.000000 0.812500
+vt 0.000000 0.312500
+vt 0.000000 0.750000
+vt 0.000000 0.250000
+vt 1.000000 0.375000
+vt 1.000000 0.437500
+vt 0.968750 0.437500
+vt 0.968750 0.375000
+vt 1.000000 0.812500
+vt 1.000000 0.875000
+vt 0.968750 0.875000
+vt 0.968750 0.812500
+vt 1.000000 0.312500
+vt 0.968750 0.312500
+vt 1.000000 0.750000
+vt 0.968750 0.750000
+vt 1.000000 0.250000
+vt 0.968750 0.250000
+vt 1.000000 0.687500
+vt 0.968750 0.687500
+vt 1.000000 0.187500
+vt 0.968750 0.187500
+vt 1.000000 0.625000
+vt 0.968750 0.625000
+vt 1.000000 0.125000
+vt 0.968750 0.125000
+vt 1.000000 0.562500
+vt 0.968750 0.562500
+vt 1.000000 0.062500
+vt 0.968750 0.062500
+vt 1.000000 0.500000
+vt 0.968750 0.500000
+vt 1.000000 0.937500
+vt 0.984375 1.000000
+vt 0.968750 0.937500
+vt 0.984375 0.000000
+vt 0.937500 0.187500
+vt 0.937500 0.125000
+vt 0.937500 0.625000
+vt 0.937500 0.562500
+vt 0.937500 0.062500
+vt 0.937500 0.500000
+vt 0.953125 1.000000
+vt 0.937500 0.937500
+vt 0.953125 0.000000
+vt 0.937500 0.437500
+vt 0.937500 0.875000
+vt 0.937500 0.375000
+vt 0.937500 0.812500
+vt 0.937500 0.312500
+vt 0.937500 0.750000
+vt 0.937500 0.250000
+vt 0.937500 0.687500
+vt 0.906250 0.375000
+vt 0.906250 0.312500
+vt 0.906250 0.812500
+vt 0.906250 0.750000
+vt 0.906250 0.250000
+vt 0.906250 0.687500
+vt 0.906250 0.187500
+vt 0.906250 0.625000
+vt 0.906250 0.125000
+vt 0.906250 0.562500
+vt 0.906250 0.062500
+vt 0.906250 0.500000
+vt 0.921875 1.000000
+vt 0.906250 0.937500
+vt 0.921875 0.000000
+vt 0.906250 0.437500
+vt 0.906250 0.875000
+vt 0.875000 0.125000
+vt 0.875000 0.062500
+vt 0.875000 0.562500
+vt 0.875000 0.500000
+vt 0.890625 1.000000
+vt 0.875000 0.937500
+vt 0.890625 0.000000
+vt 0.875000 0.437500
+vt 0.875000 0.875000
+vt 0.875000 0.375000
+vt 0.875000 0.812500
+vt 0.875000 0.312500
+vt 0.875000 0.750000
+vt 0.875000 0.250000
+vt 0.875000 0.687500
+vt 0.875000 0.187500
+vt 0.875000 0.625000
+vt 0.843750 0.812500
+vt 0.843750 0.750000
+vt 0.843750 0.312500
+vt 0.843750 0.250000
+vt 0.843750 0.687500
+vt 0.843750 0.187500
+vt 0.843750 0.625000
+vt 0.843750 0.125000
+vt 0.843750 0.562500
+vt 0.843750 0.062500
+vt 0.843750 0.500000
+vt 0.859375 1.000000
+vt 0.843750 0.937500
+vt 0.859375 0.000000
+vt 0.843750 0.437500
+vt 0.843750 0.875000
+vt 0.843750 0.375000
+vt 0.812500 0.562500
+vt 0.812500 0.500000
+vt 0.828125 1.000000
+vt 0.812500 0.937500
+vt 0.828125 0.000000
+vt 0.812500 0.062500
+vt 0.812500 0.437500
+vt 0.812500 0.875000
+vt 0.812500 0.375000
+vt 0.812500 0.812500
+vt 0.812500 0.312500
+vt 0.812500 0.750000
+vt 0.812500 0.250000
+vt 0.812500 0.687500
+vt 0.812500 0.187500
+vt 0.812500 0.625000
+vt 0.812500 0.125000
+vt 0.781250 0.312500
+vt 0.781250 0.250000
+vt 0.781250 0.750000
+vt 0.781250 0.687500
+vt 0.781250 0.187500
+vt 0.781250 0.625000
+vt 0.781250 0.125000
+vt 0.781250 0.562500
+vt 0.781250 0.062500
+vt 0.781250 0.500000
+vt 0.796875 1.000000
+vt 0.781250 0.937500
+vt 0.796875 0.000000
+vt 0.781250 0.437500
+vt 0.781250 0.875000
+vt 0.781250 0.375000
+vt 0.781250 0.812500
+vt 0.765625 1.000000
+vt 0.765625 0.000000
+vn 0.0975 0.0975 -0.9904
+vn 0.0097 0.9951 -0.0980
+vn 0.0097 -0.9951 -0.0980
+vn 0.0976 -0.0975 -0.9904
+vn 0.0286 0.9565 -0.2902
+vn 0.0938 -0.2890 -0.9527
+vn 0.0464 0.8810 -0.4709
+vn 0.0865 -0.4696 -0.8786
+vn 0.0624 0.7715 -0.6332
+vn 0.0759 -0.6326 -0.7708
+vn 0.0759 0.6326 -0.7708
+vn 0.0624 -0.7715 -0.6332
+vn 0.0865 0.4696 -0.8786
+vn 0.0464 -0.8810 -0.4709
+vn 0.0938 0.2890 -0.9527
+vn 0.0286 -0.9565 -0.2902
+vn 0.2779 0.2890 -0.9161
+vn 0.0846 -0.9565 -0.2790
+vn 0.2889 0.0975 -0.9524
+vn 0.0286 0.9951 -0.0942
+vn 0.0286 -0.9951 -0.0942
+vn 0.2889 -0.0975 -0.9524
+vn 0.0846 0.9565 -0.2790
+vn 0.2779 -0.2890 -0.9161
+vn 0.1374 0.8810 -0.4528
+vn 0.2563 -0.4696 -0.8448
+vn 0.1847 0.7715 -0.6088
+vn 0.2248 -0.6326 -0.7412
+vn 0.2248 0.6326 -0.7412
+vn 0.1847 -0.7715 -0.6088
+vn 0.2563 0.4696 -0.8448
+vn 0.1374 -0.8810 -0.4528
+vn 0.4162 -0.4696 -0.7786
+vn 0.2999 0.7715 -0.5611
+vn 0.3651 -0.6326 -0.6831
+vn 0.3651 0.6326 -0.6831
+vn 0.2999 -0.7715 -0.5611
+vn 0.4162 0.4696 -0.7786
+vn 0.2230 -0.8810 -0.4173
+vn 0.4513 0.2890 -0.8443
+vn 0.1374 -0.9565 -0.2571
+vn 0.4691 0.0975 -0.8777
+vn 0.0464 0.9951 -0.0869
+vn 0.0464 -0.9951 -0.0869
+vn 0.4691 -0.0975 -0.8777
+vn 0.1374 0.9565 -0.2571
+vn 0.4513 -0.2890 -0.8443
+vn 0.2230 0.8810 -0.4173
+vn 0.1850 -0.9565 -0.2254
+vn 0.6314 0.0976 -0.7693
+vn 0.0625 0.9951 -0.0761
+vn 0.0625 -0.9951 -0.0761
+vn 0.6314 -0.0976 -0.7693
+vn 0.1850 0.9565 -0.2254
+vn 0.6073 -0.2890 -0.7400
+vn 0.3002 0.8810 -0.3658
+vn 0.5601 -0.4696 -0.6825
+vn 0.4036 0.7715 -0.4918
+vn 0.4913 -0.6326 -0.5987
+vn 0.4913 0.6326 -0.5987
+vn 0.4036 -0.7715 -0.4918
+vn 0.5601 0.4696 -0.6825
+vn 0.3002 -0.8810 -0.3658
+vn 0.6073 0.2890 -0.7400
+vn 0.4918 0.7715 -0.4036
+vn 0.5987 -0.6326 -0.4913
+vn 0.5987 0.6326 -0.4913
+vn 0.4918 -0.7715 -0.4036
+vn 0.6825 0.4696 -0.5601
+vn 0.3658 -0.8810 -0.3002
+vn 0.7400 0.2890 -0.6073
+vn 0.2254 -0.9565 -0.1850
+vn 0.7693 0.0975 -0.6314
+vn 0.0761 0.9951 -0.0625
+vn 0.0761 -0.9951 -0.0625
+vn 0.7693 -0.0975 -0.6314
+vn 0.2254 0.9565 -0.1850
+vn 0.7400 -0.2890 -0.6073
+vn 0.3658 0.8810 -0.3002
+vn 0.6825 -0.4696 -0.5601
+vn 0.8777 0.0976 -0.4691
+vn 0.0869 0.9951 -0.0464
+vn 0.0869 -0.9951 -0.0464
+vn 0.8777 -0.0976 -0.4691
+vn 0.2571 0.9565 -0.1374
+vn 0.8443 -0.2890 -0.4513
+vn 0.4173 0.8810 -0.2231
+vn 0.7786 -0.4696 -0.4162
+vn 0.5611 0.7715 -0.2999
+vn 0.6831 -0.6326 -0.3651
+vn 0.6831 0.6326 -0.3651
+vn 0.5611 -0.7715 -0.2999
+vn 0.7786 0.4696 -0.4162
+vn 0.4173 -0.8810 -0.2231
+vn 0.8443 0.2890 -0.4513
+vn 0.2571 -0.9565 -0.1374
+vn 0.7412 -0.6326 -0.2248
+vn 0.7412 0.6326 -0.2248
+vn 0.6088 -0.7715 -0.1847
+vn 0.8448 0.4696 -0.2563
+vn 0.4528 -0.8810 -0.1374
+vn 0.9161 0.2890 -0.2779
+vn 0.2790 -0.9565 -0.0846
+vn 0.9524 0.0976 -0.2889
+vn 0.0942 0.9951 -0.0286
+vn 0.0942 -0.9951 -0.0286
+vn 0.9524 -0.0976 -0.2889
+vn 0.2790 0.9565 -0.0846
+vn 0.9161 -0.2890 -0.2779
+vn 0.4528 0.8810 -0.1374
+vn 0.8448 -0.4696 -0.2563
+vn 0.6088 0.7715 -0.1847
+vn 0.0980 -0.9951 -0.0097
+vn 0.9904 -0.0976 -0.0975
+vn 0.2902 0.9565 -0.0286
+vn 0.9527 -0.2890 -0.0938
+vn 0.4709 0.8810 -0.0464
+vn 0.8786 -0.4696 -0.0865
+vn 0.6332 0.7715 -0.0624
+vn 0.7708 -0.6326 -0.0759
+vn 0.7708 0.6326 -0.0759
+vn 0.6332 -0.7715 -0.0624
+vn 0.8786 0.4696 -0.0865
+vn 0.4709 -0.8810 -0.0464
+vn 0.9527 0.2890 -0.0938
+vn 0.2902 -0.9565 -0.0286
+vn 0.9904 0.0976 -0.0975
+vn 0.0980 0.9951 -0.0097
+vn 0.6332 -0.7715 0.0624
+vn 0.8786 0.4696 0.0865
+vn 0.4709 -0.8810 0.0464
+vn 0.9527 0.2890 0.0938
+vn 0.2902 -0.9565 0.0286
+vn 0.9904 0.0976 0.0975
+vn 0.0980 0.9951 0.0097
+vn 0.0980 -0.9951 0.0097
+vn 0.9904 -0.0976 0.0975
+vn 0.2902 0.9565 0.0286
+vn 0.9527 -0.2890 0.0938
+vn 0.4709 0.8810 0.0464
+vn 0.8786 -0.4696 0.0865
+vn 0.6332 0.7715 0.0624
+vn 0.7708 -0.6326 0.0759
+vn 0.7708 0.6326 0.0759
+vn 0.2790 0.9565 0.0846
+vn 0.9161 -0.2890 0.2779
+vn 0.4528 0.8810 0.1374
+vn 0.8448 -0.4696 0.2563
+vn 0.6088 0.7715 0.1847
+vn 0.7412 -0.6326 0.2248
+vn 0.7412 0.6326 0.2248
+vn 0.6088 -0.7715 0.1847
+vn 0.8448 0.4696 0.2563
+vn 0.4528 -0.8810 0.1374
+vn 0.9161 0.2890 0.2779
+vn 0.2790 -0.9565 0.0846
+vn 0.9524 0.0976 0.2889
+vn 0.0942 0.9951 0.0286
+vn 0.0942 -0.9951 0.0286
+vn 0.9524 -0.0976 0.2889
+vn 0.7786 0.4696 0.4162
+vn 0.4173 -0.8810 0.2231
+vn 0.8443 0.2890 0.4513
+vn 0.2571 -0.9565 0.1374
+vn 0.8777 0.0976 0.4691
+vn 0.0869 0.9951 0.0464
+vn 0.0869 -0.9951 0.0464
+vn 0.8777 -0.0976 0.4691
+vn 0.2571 0.9565 0.1374
+vn 0.8443 -0.2890 0.4513
+vn 0.4173 0.8810 0.2231
+vn 0.7786 -0.4696 0.4162
+vn 0.5611 0.7715 0.2999
+vn 0.6831 -0.6326 0.3651
+vn 0.6831 0.6326 0.3651
+vn 0.5611 -0.7715 0.2999
+vn 0.7400 -0.2890 0.6073
+vn 0.3658 0.8810 0.3002
+vn 0.6825 -0.4696 0.5601
+vn 0.4918 0.7715 0.4036
+vn 0.5987 -0.6326 0.4913
+vn 0.5987 0.6326 0.4913
+vn 0.4918 -0.7715 0.4036
+vn 0.6825 0.4696 0.5601
+vn 0.3658 -0.8810 0.3002
+vn 0.7400 0.2890 0.6073
+vn 0.2254 -0.9565 0.1850
+vn 0.7693 0.0976 0.6314
+vn 0.0761 0.9951 0.0625
+vn 0.0761 -0.9951 0.0625
+vn 0.7693 -0.0976 0.6314
+vn 0.2254 0.9565 0.1850
+vn 0.3002 -0.8810 0.3658
+vn 0.6073 0.2890 0.7400
+vn 0.1850 -0.9565 0.2254
+vn 0.6314 0.0976 0.7693
+vn 0.0625 0.9951 0.0761
+vn 0.0625 -0.9951 0.0761
+vn 0.6314 -0.0976 0.7693
+vn 0.1850 0.9565 0.2254
+vn 0.6073 -0.2890 0.7400
+vn 0.3002 0.8810 0.3658
+vn 0.5601 -0.4696 0.6825
+vn 0.4036 0.7715 0.4918
+vn 0.4913 -0.6326 0.5987
+vn 0.4913 0.6326 0.5987
+vn 0.4036 -0.7715 0.4918
+vn 0.5601 0.4696 0.6825
+vn 0.2230 0.8810 0.4173
+vn 0.4162 -0.4696 0.7786
+vn 0.2999 0.7715 0.5611
+vn 0.3651 -0.6326 0.6831
+vn 0.3651 0.6326 0.6831
+vn 0.2999 -0.7715 0.5611
+vn 0.4162 0.4696 0.7786
+vn 0.2230 -0.8810 0.4173
+vn 0.4513 0.2890 0.8443
+vn 0.1374 -0.9565 0.2571
+vn 0.4691 0.0976 0.8777
+vn 0.0464 0.9951 0.0869
+vn 0.0464 -0.9951 0.0869
+vn 0.4691 -0.0976 0.8777
+vn 0.1374 0.9565 0.2571
+vn 0.4513 -0.2890 0.8443
+vn 0.2779 0.2890 0.9161
+vn 0.0846 -0.9565 0.2790
+vn 0.2889 0.0976 0.9524
+vn 0.0286 0.9951 0.0942
+vn 0.0286 -0.9951 0.0942
+vn 0.2889 -0.0976 0.9524
+vn 0.0846 0.9565 0.2790
+vn 0.2779 -0.2890 0.9161
+vn 0.1374 0.8810 0.4528
+vn 0.2563 -0.4696 0.8448
+vn 0.1847 0.7715 0.6088
+vn 0.2248 -0.6326 0.7412
+vn 0.2248 0.6326 0.7412
+vn 0.1847 -0.7715 0.6088
+vn 0.2563 0.4696 0.8448
+vn 0.1374 -0.8810 0.4528
+vn 0.0865 -0.4696 0.8786
+vn 0.0624 0.7715 0.6332
+vn 0.0759 -0.6326 0.7708
+vn 0.0759 0.6326 0.7708
+vn 0.0624 -0.7715 0.6332
+vn 0.0865 0.4696 0.8786
+vn 0.0464 -0.8810 0.4709
+vn 0.0938 0.2890 0.9527
+vn 0.0286 -0.9565 0.2902
+vn 0.0975 0.0976 0.9904
+vn 0.0097 0.9951 0.0980
+vn 0.0097 -0.9951 0.0980
+vn 0.0975 -0.0976 0.9904
+vn 0.0286 0.9565 0.2902
+vn 0.0938 -0.2890 0.9527
+vn 0.0464 0.8810 0.4709
+vn -0.0286 -0.9565 0.2902
+vn -0.0976 0.0976 0.9904
+vn -0.0097 0.9951 0.0980
+vn -0.0097 -0.9951 0.0980
+vn -0.0976 -0.0976 0.9904
+vn -0.0286 0.9565 0.2902
+vn -0.0938 -0.2890 0.9527
+vn -0.0464 0.8810 0.4709
+vn -0.0865 -0.4696 0.8786
+vn -0.0624 0.7715 0.6332
+vn -0.0759 -0.6326 0.7708
+vn -0.0759 0.6326 0.7708
+vn -0.0624 -0.7715 0.6332
+vn -0.0865 0.4696 0.8786
+vn -0.0464 -0.8810 0.4709
+vn -0.0938 0.2890 0.9527
+vn -0.2248 -0.6326 0.7412
+vn -0.2248 0.6326 0.7412
+vn -0.1847 -0.7715 0.6088
+vn -0.2563 0.4696 0.8448
+vn -0.1374 -0.8810 0.4528
+vn -0.2779 0.2890 0.9161
+vn -0.0846 -0.9565 0.2790
+vn -0.2889 0.0976 0.9524
+vn -0.0286 0.9951 0.0942
+vn -0.0286 -0.9951 0.0942
+vn -0.2889 -0.0976 0.9524
+vn -0.0846 0.9565 0.2790
+vn -0.2779 -0.2890 0.9161
+vn -0.1374 0.8810 0.4528
+vn -0.2563 -0.4696 0.8448
+vn -0.1847 0.7715 0.6088
+vn -0.0464 0.9951 0.0869
+vn -0.0464 -0.9951 0.0869
+vn -0.4691 -0.0976 0.8777
+vn -0.1374 0.9565 0.2571
+vn -0.4513 -0.2890 0.8443
+vn -0.2230 0.8810 0.4173
+vn -0.4162 -0.4696 0.7786
+vn -0.2999 0.7715 0.5611
+vn -0.3651 -0.6326 0.6831
+vn -0.3651 0.6326 0.6831
+vn -0.2999 -0.7715 0.5611
+vn -0.4162 0.4696 0.7786
+vn -0.2230 -0.8810 0.4173
+vn -0.4513 0.2890 0.8443
+vn -0.1374 -0.9565 0.2571
+vn -0.4691 0.0976 0.8777
+vn -0.4913 0.6326 0.5987
+vn -0.4036 -0.7715 0.4918
+vn -0.5601 0.4696 0.6825
+vn -0.3002 -0.8810 0.3658
+vn -0.6073 0.2890 0.7400
+vn -0.1850 -0.9565 0.2254
+vn -0.6314 0.0976 0.7693
+vn -0.0625 0.9951 0.0761
+vn -0.0625 -0.9951 0.0761
+vn -0.6314 -0.0976 0.7693
+vn -0.1850 0.9565 0.2254
+vn -0.6073 -0.2890 0.7400
+vn -0.3002 0.8810 0.3658
+vn -0.5601 -0.4696 0.6825
+vn -0.4036 0.7715 0.4918
+vn -0.4913 -0.6326 0.5987
+vn -0.7693 -0.0976 0.6314
+vn -0.2254 0.9565 0.1850
+vn -0.7400 -0.2890 0.6073
+vn -0.3658 0.8810 0.3002
+vn -0.6825 -0.4696 0.5601
+vn -0.4918 0.7715 0.4036
+vn -0.5987 -0.6326 0.4913
+vn -0.5987 0.6326 0.4913
+vn -0.4918 -0.7715 0.4036
+vn -0.6825 0.4696 0.5601
+vn -0.3658 -0.8810 0.3002
+vn -0.7400 0.2890 0.6073
+vn -0.2254 -0.9565 0.1850
+vn -0.7693 0.0976 0.6314
+vn -0.0761 0.9951 0.0625
+vn -0.0761 -0.9951 0.0625
+vn -0.5611 -0.7715 0.2999
+vn -0.7786 0.4696 0.4162
+vn -0.4173 -0.8810 0.2231
+vn -0.8443 0.2890 0.4513
+vn -0.2571 -0.9565 0.1374
+vn -0.8777 0.0976 0.4691
+vn -0.0869 0.9951 0.0464
+vn -0.0869 -0.9951 0.0464
+vn -0.8777 -0.0976 0.4691
+vn -0.2571 0.9565 0.1374
+vn -0.8443 -0.2890 0.4513
+vn -0.4173 0.8810 0.2231
+vn -0.7786 -0.4696 0.4162
+vn -0.5611 0.7715 0.2999
+vn -0.6831 -0.6326 0.3651
+vn -0.6831 0.6326 0.3651
+vn -0.2790 0.9565 0.0846
+vn -0.9161 -0.2890 0.2779
+vn -0.4528 0.8810 0.1374
+vn -0.8448 -0.4696 0.2563
+vn -0.6088 0.7715 0.1847
+vn -0.7412 -0.6326 0.2248
+vn -0.7412 0.6326 0.2248
+vn -0.6088 -0.7715 0.1847
+vn -0.8448 0.4696 0.2563
+vn -0.4528 -0.8810 0.1374
+vn -0.9161 0.2890 0.2779
+vn -0.2790 -0.9565 0.0846
+vn -0.9524 0.0976 0.2889
+vn -0.0942 0.9951 0.0286
+vn -0.0942 -0.9951 0.0286
+vn -0.9524 -0.0976 0.2889
+vn -0.8786 0.4696 0.0865
+vn -0.4709 -0.8810 0.0464
+vn -0.9527 0.2890 0.0938
+vn -0.2902 -0.9565 0.0286
+vn -0.9904 0.0976 0.0975
+vn -0.0980 0.9951 0.0097
+vn -0.0980 -0.9951 0.0097
+vn -0.9904 -0.0976 0.0975
+vn -0.2902 0.9565 0.0286
+vn -0.9527 -0.2890 0.0938
+vn -0.4709 0.8810 0.0464
+vn -0.8786 -0.4696 0.0865
+vn -0.6332 0.7715 0.0624
+vn -0.7708 -0.6326 0.0759
+vn -0.7708 0.6326 0.0759
+vn -0.6332 -0.7715 0.0624
+vn -0.9527 -0.2890 -0.0938
+vn -0.4709 0.8810 -0.0464
+vn -0.8786 -0.4696 -0.0865
+vn -0.6332 0.7715 -0.0624
+vn -0.7708 -0.6326 -0.0759
+vn -0.7708 0.6326 -0.0759
+vn -0.6332 -0.7715 -0.0624
+vn -0.8786 0.4696 -0.0865
+vn -0.4709 -0.8810 -0.0464
+vn -0.9527 0.2890 -0.0938
+vn -0.2902 -0.9565 -0.0286
+vn -0.9904 0.0976 -0.0976
+vn -0.0980 0.9951 -0.0097
+vn -0.0980 -0.9951 -0.0097
+vn -0.9904 -0.0976 -0.0976
+vn -0.2902 0.9565 -0.0286
+vn -0.4528 -0.8810 -0.1374
+vn -0.9161 0.2890 -0.2779
+vn -0.2790 -0.9565 -0.0846
+vn -0.9524 0.0976 -0.2889
+vn -0.0942 0.9951 -0.0286
+vn -0.0942 -0.9951 -0.0286
+vn -0.9524 -0.0976 -0.2889
+vn -0.2790 0.9565 -0.0846
+vn -0.9161 -0.2890 -0.2779
+vn -0.4528 0.8810 -0.1374
+vn -0.8448 -0.4696 -0.2563
+vn -0.6088 0.7715 -0.1847
+vn -0.7412 -0.6326 -0.2248
+vn -0.7412 0.6326 -0.2248
+vn -0.6088 -0.7715 -0.1847
+vn -0.8448 0.4696 -0.2563
+vn -0.7786 -0.4696 -0.4162
+vn -0.5611 0.7715 -0.2999
+vn -0.6831 -0.6326 -0.3651
+vn -0.6831 0.6326 -0.3651
+vn -0.5611 -0.7715 -0.2999
+vn -0.7786 0.4696 -0.4162
+vn -0.4173 -0.8810 -0.2231
+vn -0.8443 0.2890 -0.4513
+vn -0.2571 -0.9565 -0.1374
+vn -0.8777 0.0976 -0.4691
+vn -0.0869 0.9951 -0.0464
+vn -0.0869 -0.9951 -0.0464
+vn -0.8777 -0.0976 -0.4691
+vn -0.2571 0.9565 -0.1374
+vn -0.8443 -0.2890 -0.4513
+vn -0.4173 0.8810 -0.2231
+vn -0.2254 -0.9565 -0.1850
+vn -0.7693 0.0976 -0.6314
+vn -0.0761 0.9951 -0.0625
+vn -0.0761 -0.9951 -0.0625
+vn -0.7693 -0.0976 -0.6314
+vn -0.2254 0.9565 -0.1850
+vn -0.7400 -0.2890 -0.6073
+vn -0.3658 0.8810 -0.3002
+vn -0.6825 -0.4696 -0.5601
+vn -0.4918 0.7715 -0.4036
+vn -0.5987 -0.6326 -0.4913
+vn -0.5987 0.6326 -0.4913
+vn -0.4918 -0.7715 -0.4036
+vn -0.6825 0.4696 -0.5601
+vn -0.3658 -0.8810 -0.3002
+vn -0.7400 0.2890 -0.6073
+vn -0.4036 0.7715 -0.4918
+vn -0.4913 -0.6326 -0.5987
+vn -0.4913 0.6326 -0.5987
+vn -0.4036 -0.7715 -0.4918
+vn -0.5601 0.4696 -0.6825
+vn -0.3002 -0.8810 -0.3658
+vn -0.6073 0.2890 -0.7400
+vn -0.1850 -0.9565 -0.2254
+vn -0.6314 0.0976 -0.7693
+vn -0.0625 0.9951 -0.0761
+vn -0.0625 -0.9951 -0.0761
+vn -0.6314 -0.0976 -0.7693
+vn -0.1850 0.9565 -0.2254
+vn -0.6073 -0.2890 -0.7400
+vn -0.3002 0.8810 -0.3658
+vn -0.5601 -0.4696 -0.6825
+vn -0.4691 0.0976 -0.8777
+vn -0.0464 0.9951 -0.0869
+vn -0.0464 -0.9951 -0.0869
+vn -0.4691 -0.0976 -0.8777
+vn -0.1374 0.9565 -0.2571
+vn -0.4513 -0.2890 -0.8443
+vn -0.2230 0.8810 -0.4173
+vn -0.4162 -0.4696 -0.7786
+vn -0.2999 0.7715 -0.5611
+vn -0.3651 -0.6326 -0.6831
+vn -0.3651 0.6326 -0.6831
+vn -0.2999 -0.7715 -0.5611
+vn -0.4162 0.4696 -0.7786
+vn -0.2230 -0.8810 -0.4173
+vn -0.4513 0.2890 -0.8443
+vn -0.1374 -0.9565 -0.2571
+vn -0.2248 -0.6326 -0.7412
+vn -0.2248 0.6326 -0.7412
+vn -0.1847 -0.7715 -0.6088
+vn -0.2563 0.4696 -0.8448
+vn -0.1374 -0.8810 -0.4528
+vn -0.2779 0.2890 -0.9161
+vn -0.0846 -0.9565 -0.2790
+vn -0.2889 0.0976 -0.9524
+vn -0.0286 0.9951 -0.0942
+vn -0.0286 -0.9951 -0.0942
+vn -0.2889 -0.0976 -0.9524
+vn -0.0846 0.9565 -0.2790
+vn -0.2779 -0.2890 -0.9161
+vn -0.1374 0.8810 -0.4528
+vn -0.2563 -0.4696 -0.8448
+vn -0.1847 0.7715 -0.6088
+vn -0.0097 0.9951 -0.0980
+vn -0.0097 -0.9951 -0.0980
+vn -0.0976 -0.0976 -0.9904
+vn -0.0286 0.9565 -0.2902
+vn -0.0938 -0.2890 -0.9527
+vn -0.0464 0.8810 -0.4709
+vn -0.0865 -0.4696 -0.8786
+vn -0.0624 0.7715 -0.6332
+vn -0.0759 -0.6326 -0.7708
+vn -0.0759 0.6326 -0.7708
+vn -0.0624 -0.7715 -0.6332
+vn -0.0865 0.4696 -0.8786
+vn -0.0464 -0.8810 -0.4709
+vn -0.0938 0.2890 -0.9527
+vn -0.0286 -0.9565 -0.2902
+vn -0.0976 0.0976 -0.9904
+usemtl Material.001
+s off
+f 8/1/1 7/2/1 17/3/1 18/4/1
+f 1/5/2 297/6/2 11/7/2
+f 206/8/3 482/9/3 25/10/3
+f 9/11/4 8/1/4 18/4/4 19/12/4
+f 2/13/5 1/5/5 11/7/5 12/14/5
+f 478/15/6 9/11/6 19/12/6 20/16/6
+f 3/17/7 2/13/7 12/14/7 13/18/7
+f 479/19/8 478/15/8 20/16/8 21/20/8
+f 4/21/9 3/17/9 13/18/9 14/22/9
+f 480/23/10 479/19/10 21/20/10 22/24/10
+f 5/25/11 4/21/11 14/22/11 15/26/11
+f 10/27/12 480/23/12 22/24/12 23/28/12
+f 6/29/13 5/25/13 15/26/13 16/30/13
+f 481/31/14 10/27/14 23/28/14 24/32/14
+f 7/2/15 6/29/15 16/30/15 17/3/15
+f 482/9/16 481/31/16 24/32/16 25/10/16
+f 17/3/17 16/30/17 31/33/17 32/34/17
+f 25/10/18 24/32/18 39/35/18 40/36/18
+f 18/4/19 17/3/19 32/34/19 33/37/19
+f 11/7/20 297/38/20 26/39/20
+f 206/40/21 25/10/21 40/36/21
+f 19/12/22 18/4/22 33/37/22 34/41/22
+f 12/14/23 11/7/23 26/39/23 27/42/23
+f 20/16/24 19/12/24 34/41/24 35/43/24
+f 13/18/25 12/14/25 27/42/25 28/44/25
+f 21/20/26 20/16/26 35/43/26 36/45/26
+f 14/22/27 13/18/27 28/44/27 29/46/27
+f 22/24/28 21/20/28 36/45/28 37/47/28
+f 15/26/29 14/22/29 29/46/29 30/48/29
+f 23/28/30 22/24/30 37/47/30 38/49/30
+f 16/30/31 15/26/31 30/48/31 31/33/31
+f 24/32/32 23/28/32 38/49/32 39/35/32
+f 36/45/33 35/43/33 50/50/33 51/51/33
+f 29/46/34 28/44/34 43/52/34 44/53/34
+f 37/47/35 36/45/35 51/51/35 52/54/35
+f 30/48/36 29/46/36 44/53/36 45/55/36
+f 38/49/37 37/47/37 52/54/37 53/56/37
+f 31/33/38 30/48/38 45/55/38 46/57/38
+f 39/35/39 38/49/39 53/56/39 54/58/39
+f 32/34/40 31/33/40 46/57/40 47/59/40
+f 40/36/41 39/35/41 54/58/41 55/60/41
+f 33/37/42 32/34/42 47/59/42 48/61/42
+f 26/39/43 297/62/43 41/63/43
+f 206/64/44 40/36/44 55/60/44
+f 34/41/45 33/37/45 48/61/45 49/65/45
+f 27/42/46 26/39/46 41/63/46 42/66/46
+f 35/43/47 34/41/47 49/65/47 50/50/47
+f 28/44/48 27/42/48 42/66/48 43/52/48
+f 55/60/49 54/58/49 69/67/49 70/68/49
+f 48/61/50 47/59/50 62/69/50 63/70/50
+f 41/63/51 297/71/51 56/72/51
+f 206/73/52 55/60/52 70/68/52
+f 49/65/53 48/61/53 63/70/53 64/74/53
+f 42/66/54 41/63/54 56/72/54 57/75/54
+f 50/50/55 49/65/55 64/74/55 65/76/55
+f 43/52/56 42/66/56 57/75/56 58/77/56
+f 51/51/57 50/50/57 65/76/57 66/78/57
+f 44/53/58 43/52/58 58/77/58 59/79/58
+f 52/54/59 51/51/59 66/78/59 67/80/59
+f 45/55/60 44/53/60 59/79/60 60/81/60
+f 53/56/61 52/54/61 67/80/61 68/82/61
+f 46/57/62 45/55/62 60/81/62 61/83/62
+f 54/58/63 53/56/63 68/82/63 69/67/63
+f 47/59/64 46/57/64 61/83/64 62/69/64
+f 59/79/65 58/77/65 73/84/65 74/85/65
+f 67/80/66 66/78/66 81/86/66 82/87/66
+f 60/81/67 59/79/67 74/85/67 75/88/67
+f 68/82/68 67/80/68 82/87/68 83/89/68
+f 61/83/69 60/81/69 75/88/69 76/90/69
+f 69/67/70 68/82/70 83/89/70 84/91/70
+f 62/69/71 61/83/71 76/90/71 77/92/71
+f 70/68/72 69/67/72 84/91/72 85/93/72
+f 63/70/73 62/69/73 77/92/73 78/94/73
+f 56/72/74 297/95/74 71/96/74
+f 206/97/75 70/68/75 85/93/75
+f 64/74/76 63/70/76 78/94/76 79/98/76
+f 57/75/77 56/72/77 71/96/77 72/99/77
+f 65/76/78 64/74/78 79/98/78 80/100/78
+f 58/77/79 57/75/79 72/99/79 73/84/79
+f 66/78/80 65/76/80 80/100/80 81/86/80
+f 78/94/81 77/92/81 92/101/81 93/102/81
+f 71/96/82 297/103/82 86/104/82
+f 206/105/83 85/93/83 100/106/83
+f 79/98/84 78/94/84 93/102/84 94/107/84
+f 72/99/85 71/96/85 86/104/85 87/108/85
+f 80/100/86 79/98/86 94/107/86 95/109/86
+f 73/84/87 72/99/87 87/108/87 88/110/87
+f 81/86/88 80/100/88 95/109/88 96/111/88
+f 74/85/89 73/84/89 88/110/89 89/112/89
+f 82/87/90 81/86/90 96/111/90 97/113/90
+f 75/88/91 74/85/91 89/112/91 90/114/91
+f 83/89/92 82/87/92 97/113/92 98/115/92
+f 76/90/93 75/88/93 90/114/93 91/116/93
+f 84/91/94 83/89/94 98/115/94 99/117/94
+f 77/92/95 76/90/95 91/116/95 92/101/95
+f 85/93/96 84/91/96 99/117/96 100/106/96
+f 97/113/97 96/111/97 111/118/97 112/119/97
+f 90/114/98 89/112/98 104/120/98 105/121/98
+f 98/115/99 97/113/99 112/119/99 113/122/99
+f 91/116/100 90/114/100 105/121/100 106/123/100
+f 99/117/101 98/115/101 113/122/101 114/124/101
+f 92/101/102 91/116/102 106/123/102 107/125/102
+f 100/106/103 99/117/103 114/124/103 115/126/103
+f 93/102/104 92/101/104 107/125/104 108/127/104
+f 86/104/105 297/128/105 101/129/105
+f 206/130/106 100/106/106 115/126/106
+f 94/107/107 93/102/107 108/127/107 109/131/107
+f 87/108/108 86/104/108 101/129/108 102/132/108
+f 95/109/109 94/107/109 109/131/109 110/133/109
+f 88/110/110 87/108/110 102/132/110 103/134/110
+f 96/111/111 95/109/111 110/133/111 111/118/111
+f 89/112/112 88/110/112 103/134/112 104/120/112
+f 206/135/113 115/126/113 130/136/113
+f 109/131/114 108/127/114 123/137/114 124/138/114
+f 102/132/115 101/129/115 116/139/115 117/140/115
+f 110/133/116 109/131/116 124/138/116 125/141/116
+f 103/134/117 102/132/117 117/140/117 118/142/117
+f 111/118/118 110/133/118 125/141/118 126/143/118
+f 104/120/119 103/134/119 118/142/119 119/144/119
+f 112/119/120 111/118/120 126/143/120 127/145/120
+f 105/121/121 104/120/121 119/144/121 120/146/121
+f 113/122/122 112/119/122 127/145/122 128/147/122
+f 106/123/123 105/121/123 120/146/123 121/148/123
+f 114/124/124 113/122/124 128/147/124 129/149/124
+f 107/125/125 106/123/125 121/148/125 122/150/125
+f 115/126/126 114/124/126 129/149/126 130/136/126
+f 108/127/127 107/125/127 122/150/127 123/137/127
+f 101/129/128 297/151/128 116/139/128
+f 128/147/129 127/145/129 142/152/129 143/153/129
+f 121/148/130 120/146/130 135/154/130 136/155/130
+f 129/149/131 128/147/131 143/153/131 144/156/131
+f 122/150/132 121/148/132 136/155/132 137/157/132
+f 130/136/133 129/149/133 144/156/133 145/158/133
+f 123/137/134 122/150/134 137/157/134 138/159/134
+f 116/139/135 297/160/135 131/161/135
+f 206/162/136 130/136/136 145/158/136
+f 124/138/137 123/137/137 138/159/137 139/163/137
+f 117/140/138 116/139/138 131/161/138 132/164/138
+f 125/141/139 124/138/139 139/163/139 140/165/139
+f 118/142/140 117/140/140 132/164/140 133/166/140
+f 126/143/141 125/141/141 140/165/141 141/167/141
+f 119/144/142 118/142/142 133/166/142 134/168/142
+f 127/145/143 126/143/143 141/167/143 142/152/143
+f 120/146/144 119/144/144 134/168/144 135/154/144
+f 132/164/145 131/161/145 146/169/145 147/170/145
+f 140/165/146 139/163/146 154/171/146 155/172/146
+f 133/166/147 132/164/147 147/170/147 148/173/147
+f 141/167/148 140/165/148 155/172/148 156/174/148
+f 134/168/149 133/166/149 148/173/149 149/175/149
+f 142/152/150 141/167/150 156/174/150 157/176/150
+f 135/154/151 134/168/151 149/175/151 150/177/151
+f 143/153/152 142/152/152 157/176/152 158/178/152
+f 136/155/153 135/154/153 150/177/153 151/179/153
+f 144/156/154 143/153/154 158/178/154 159/180/154
+f 137/157/155 136/155/155 151/179/155 152/181/155
+f 145/158/156 144/156/156 159/180/156 160/182/156
+f 138/159/157 137/157/157 152/181/157 153/183/157
+f 131/161/158 297/184/158 146/169/158
+f 206/185/159 145/158/159 160/182/159
+f 139/163/160 138/159/160 153/183/160 154/171/160
+f 151/179/161 150/177/161 165/186/161 166/187/161
+f 159/180/162 158/178/162 173/188/162 174/189/162
+f 152/181/163 151/179/163 166/187/163 167/190/163
+f 160/182/164 159/180/164 174/189/164 175/191/164
+f 153/183/165 152/181/165 167/190/165 168/192/165
+f 146/169/166 297/193/166 161/194/166
+f 206/195/167 160/182/167 175/191/167
+f 154/171/168 153/183/168 168/192/168 169/196/168
+f 147/170/169 146/169/169 161/194/169 162/197/169
+f 155/172/170 154/171/170 169/196/170 170/198/170
+f 148/173/171 147/170/171 162/197/171 163/199/171
+f 156/174/172 155/172/172 170/198/172 171/200/172
+f 149/175/173 148/173/173 163/199/173 164/201/173
+f 157/176/174 156/174/174 171/200/174 172/202/174
+f 150/177/175 149/175/175 164/201/175 165/186/175
+f 158/178/176 157/176/176 172/202/176 173/188/176
+f 170/198/177 169/196/177 184/203/177 185/204/177
+f 163/199/178 162/197/178 177/205/178 178/206/178
+f 171/200/179 170/198/179 185/204/179 186/207/179
+f 164/201/180 163/199/180 178/206/180 179/208/180
+f 172/202/181 171/200/181 186/207/181 187/209/181
+f 165/186/182 164/201/182 179/208/182 180/210/182
+f 173/188/183 172/202/183 187/209/183 188/211/183
+f 166/187/184 165/186/184 180/210/184 181/212/184
+f 174/189/185 173/188/185 188/211/185 189/213/185
+f 167/190/186 166/187/186 181/212/186 182/214/186
+f 175/191/187 174/189/187 189/213/187 190/215/187
+f 168/192/188 167/190/188 182/214/188 183/216/188
+f 161/194/189 297/217/189 176/218/189
+f 206/219/190 175/191/190 190/215/190
+f 169/196/191 168/192/191 183/216/191 184/203/191
+f 162/197/192 161/194/192 176/218/192 177/205/192
+f 189/213/193 188/211/193 203/220/193 204/221/193
+f 182/214/194 181/212/194 196/222/194 197/223/194
+f 190/215/195 189/213/195 204/221/195 205/224/195
+f 183/216/196 182/214/196 197/223/196 198/225/196
+f 176/218/197 297/226/197 191/227/197
+f 206/228/198 190/215/198 205/224/198
+f 184/203/199 183/216/199 198/225/199 199/229/199
+f 177/205/200 176/218/200 191/227/200 192/230/200
+f 185/204/201 184/203/201 199/229/201 200/231/201
+f 178/206/202 177/205/202 192/230/202 193/232/202
+f 186/207/203 185/204/203 200/231/203 201/233/203
+f 179/208/204 178/206/204 193/232/204 194/234/204
+f 187/209/205 186/207/205 201/233/205 202/235/205
+f 180/210/206 179/208/206 194/234/206 195/236/206
+f 188/211/207 187/209/207 202/235/207 203/220/207
+f 181/212/208 180/210/208 195/236/208 196/222/208
+f 193/232/209 192/230/209 208/237/209 209/238/209
+f 201/233/210 200/231/210 216/239/210 217/240/210
+f 194/234/211 193/232/211 209/238/211 210/241/211
+f 202/235/212 201/233/212 217/240/212 218/242/212
+f 195/236/213 194/234/213 210/241/213 211/243/213
+f 203/220/214 202/235/214 218/242/214 219/244/214
+f 196/222/215 195/236/215 211/243/215 212/245/215
+f 204/221/216 203/220/216 219/244/216 220/246/216
+f 197/223/217 196/222/217 212/245/217 213/247/217
+f 205/224/218 204/221/218 220/246/218 221/248/218
+f 198/225/219 197/223/219 213/247/219 214/249/219
+f 191/227/220 297/250/220 207/251/220
+f 206/252/221 205/224/221 221/248/221
+f 199/229/222 198/225/222 214/249/222 215/253/222
+f 192/230/223 191/227/223 207/251/223 208/237/223
+f 200/231/224 199/229/224 215/253/224 216/239/224
+f 213/247/225 212/245/225 227/254/225 228/255/225
+f 221/248/226 220/246/226 235/256/226 236/257/226
+f 214/249/227 213/247/227 228/255/227 229/258/227
+f 207/251/228 297/259/228 222/260/228
+f 206/261/229 221/248/229 236/257/229
+f 215/253/230 214/249/230 229/258/230 230/262/230
+f 208/237/231 207/251/231 222/260/231 223/263/231
+f 216/239/232 215/253/232 230/262/232 231/264/232
+f 209/238/233 208/237/233 223/263/233 224/265/233
+f 217/240/234 216/239/234 231/264/234 232/266/234
+f 210/241/235 209/238/235 224/265/235 225/267/235
+f 218/242/236 217/240/236 232/266/236 233/268/236
+f 211/243/237 210/241/237 225/267/237 226/269/237
+f 219/244/238 218/242/238 233/268/238 234/270/238
+f 212/245/239 211/243/239 226/269/239 227/254/239
+f 220/246/240 219/244/240 234/270/240 235/256/240
+f 232/266/241 231/264/241 246/271/241 247/272/241
+f 225/267/242 224/265/242 239/273/242 240/274/242
+f 233/268/243 232/266/243 247/272/243 248/275/243
+f 226/269/244 225/267/244 240/274/244 241/276/244
+f 234/270/245 233/268/245 248/275/245 249/277/245
+f 227/254/246 226/269/246 241/276/246 242/278/246
+f 235/256/247 234/270/247 249/277/247 250/279/247
+f 228/255/248 227/254/248 242/278/248 243/280/248
+f 236/257/249 235/256/249 250/279/249 251/281/249
+f 229/258/250 228/255/250 243/280/250 244/282/250
+f 222/260/251 297/283/251 237/284/251
+f 206/285/252 236/257/252 251/281/252
+f 230/262/253 229/258/253 244/282/253 245/286/253
+f 223/263/254 222/260/254 237/284/254 238/287/254
+f 231/264/255 230/262/255 245/286/255 246/271/255
+f 224/265/256 223/263/256 238/287/256 239/273/256
+f 251/281/257 250/279/257 265/288/257 266/289/257
+f 244/282/258 243/280/258 258/290/258 259/291/258
+f 237/284/259 297/292/259 252/293/259
+f 206/294/260 251/281/260 266/289/260
+f 245/286/261 244/282/261 259/291/261 260/295/261
+f 238/287/262 237/284/262 252/293/262 253/296/262
+f 246/271/263 245/286/263 260/295/263 261/297/263
+f 239/273/264 238/287/264 253/296/264 254/298/264
+f 247/272/265 246/271/265 261/297/265 262/299/265
+f 240/274/266 239/273/266 254/298/266 255/300/266
+f 248/275/267 247/272/267 262/299/267 263/301/267
+f 241/276/268 240/274/268 255/300/268 256/302/268
+f 249/277/269 248/275/269 263/301/269 264/303/269
+f 242/278/270 241/276/270 256/302/270 257/304/270
+f 250/279/271 249/277/271 264/303/271 265/288/271
+f 243/280/272 242/278/272 257/304/272 258/290/272
+f 263/301/273 262/299/273 277/305/273 278/306/273
+f 256/302/274 255/300/274 270/307/274 271/308/274
+f 264/303/275 263/301/275 278/306/275 279/309/275
+f 257/304/276 256/302/276 271/308/276 272/310/276
+f 265/288/277 264/303/277 279/309/277 280/311/277
+f 258/290/278 257/304/278 272/310/278 273/312/278
+f 266/289/279 265/288/279 280/311/279 281/313/279
+f 259/291/280 258/290/280 273/312/280 274/314/280
+f 252/293/281 297/315/281 267/316/281
+f 206/317/282 266/289/282 281/313/282
+f 260/295/283 259/291/283 274/314/283 275/318/283
+f 253/296/284 252/293/284 267/316/284 268/319/284
+f 261/297/285 260/295/285 275/318/285 276/320/285
+f 254/298/286 253/296/286 268/319/286 269/321/286
+f 262/299/287 261/297/287 276/320/287 277/305/287
+f 255/300/288 254/298/288 269/321/288 270/307/288
+f 267/316/289 297/322/289 282/323/289
+f 206/324/290 281/313/290 296/325/290
+f 275/318/291 274/314/291 289/326/291 290/327/291
+f 268/319/292 267/316/292 282/323/292 283/328/292
+f 276/320/293 275/318/293 290/327/293 291/329/293
+f 269/321/294 268/319/294 283/328/294 284/330/294
+f 277/305/295 276/320/295 291/329/295 292/331/295
+f 270/307/296 269/321/296 284/330/296 285/332/296
+f 278/306/297 277/305/297 292/331/297 293/333/297
+f 271/308/298 270/307/298 285/332/298 286/334/298
+f 279/309/299 278/306/299 293/333/299 294/335/299
+f 272/310/300 271/308/300 286/334/300 287/336/300
+f 280/311/301 279/309/301 294/335/301 295/337/301
+f 273/312/302 272/310/302 287/336/302 288/338/302
+f 281/313/303 280/311/303 295/337/303 296/325/303
+f 274/314/304 273/312/304 288/338/304 289/326/304
+f 286/334/305 285/332/305 301/339/305 302/340/305
+f 294/335/306 293/333/306 309/341/306 310/342/306
+f 287/336/307 286/334/307 302/340/307 303/343/307
+f 295/337/308 294/335/308 310/342/308 311/344/308
+f 288/338/309 287/336/309 303/343/309 304/345/309
+f 296/325/310 295/337/310 311/344/310 312/346/310
+f 289/326/311 288/338/311 304/345/311 305/347/311
+f 282/323/312 297/348/312 298/349/312
+f 206/350/313 296/325/313 312/346/313
+f 290/327/314 289/326/314 305/347/314 306/351/314
+f 283/328/315 282/323/315 298/349/315 299/352/315
+f 291/329/316 290/327/316 306/351/316 307/353/316
+f 284/330/317 283/328/317 299/352/317 300/354/317
+f 292/331/318 291/329/318 307/353/318 308/355/318
+f 285/332/319 284/330/319 300/354/319 301/339/319
+f 293/333/320 292/331/320 308/355/320 309/341/320
+f 306/351/321 305/347/321 320/356/321 321/357/321
+f 299/352/322 298/349/322 313/358/322 314/359/322
+f 307/353/323 306/351/323 321/357/323 322/360/323
+f 300/354/324 299/352/324 314/359/324 315/361/324
+f 308/355/325 307/353/325 322/360/325 323/362/325
+f 301/339/326 300/354/326 315/361/326 316/363/326
+f 309/341/327 308/355/327 323/362/327 324/364/327
+f 302/340/328 301/339/328 316/363/328 317/365/328
+f 310/342/329 309/341/329 324/364/329 325/366/329
+f 303/343/330 302/340/330 317/365/330 318/367/330
+f 311/344/331 310/342/331 325/366/331 326/368/331
+f 304/345/332 303/343/332 318/367/332 319/369/332
+f 312/346/333 311/344/333 326/368/333 327/370/333
+f 305/347/334 304/345/334 319/369/334 320/356/334
+f 298/349/335 297/371/335 313/358/335
+f 206/372/336 312/346/336 327/370/336
+f 325/366/337 324/364/337 339/373/337 340/374/337
+f 318/367/338 317/365/338 332/375/338 333/376/338
+f 326/368/339 325/366/339 340/374/339 341/377/339
+f 319/369/340 318/367/340 333/376/340 334/378/340
+f 327/370/341 326/368/341 341/377/341 342/379/341
+f 320/356/342 319/369/342 334/378/342 335/380/342
+f 313/358/343 297/381/343 328/382/343
+f 206/383/344 327/370/344 342/379/344
+f 321/357/345 320/356/345 335/380/345 336/384/345
+f 314/359/346 313/358/346 328/382/346 329/385/346
+f 322/360/347 321/357/347 336/384/347 337/386/347
+f 315/361/348 314/359/348 329/385/348 330/387/348
+f 323/362/349 322/360/349 337/386/349 338/388/349
+f 316/363/350 315/361/350 330/387/350 331/389/350
+f 324/364/351 323/362/351 338/388/351 339/373/351
+f 317/365/352 316/363/352 331/389/352 332/375/352
+f 329/385/353 328/382/353 343/390/353 344/391/353
+f 337/386/354 336/384/354 351/392/354 352/393/354
+f 330/387/355 329/385/355 344/391/355 345/394/355
+f 338/388/356 337/386/356 352/393/356 353/395/356
+f 331/389/357 330/387/357 345/394/357 346/396/357
+f 339/373/358 338/388/358 353/395/358 354/397/358
+f 332/375/359 331/389/359 346/396/359 347/398/359
+f 340/374/360 339/373/360 354/397/360 355/399/360
+f 333/376/361 332/375/361 347/398/361 348/400/361
+f 341/377/362 340/374/362 355/399/362 356/401/362
+f 334/378/363 333/376/363 348/400/363 349/402/363
+f 342/379/364 341/377/364 356/401/364 357/403/364
+f 335/380/365 334/378/365 349/402/365 350/404/365
+f 328/382/366 297/405/366 343/390/366
+f 206/406/367 342/379/367 357/403/367
+f 336/384/368 335/380/368 350/404/368 351/392/368
+f 348/400/369 347/398/369 362/407/369 363/408/369
+f 356/401/370 355/399/370 370/409/370 371/410/370
+f 349/402/371 348/400/371 363/408/371 364/411/371
+f 357/403/372 356/401/372 371/410/372 372/412/372
+f 350/404/373 349/402/373 364/411/373 365/413/373
+f 343/390/374 297/414/374 358/415/374
+f 206/416/375 357/403/375 372/412/375
+f 351/392/376 350/404/376 365/413/376 366/417/376
+f 344/391/377 343/390/377 358/415/377 359/418/377
+f 352/393/378 351/392/378 366/417/378 367/419/378
+f 345/394/379 344/391/379 359/418/379 360/420/379
+f 353/395/380 352/393/380 367/419/380 368/421/380
+f 346/396/381 345/394/381 360/420/381 361/422/381
+f 354/397/382 353/395/382 368/421/382 369/423/382
+f 347/398/383 346/396/383 361/422/383 362/407/383
+f 355/399/384 354/397/384 369/423/384 370/409/384
+f 367/424/385 366/425/385 381/426/385 382/427/385
+f 360/428/386 359/429/386 374/430/386 375/431/386
+f 368/432/387 367/424/387 382/427/387 383/433/387
+f 361/434/388 360/428/388 375/431/388 376/435/388
+f 369/436/389 368/432/389 383/433/389 384/437/389
+f 362/438/390 361/434/390 376/435/390 377/439/390
+f 370/440/391 369/436/391 384/437/391 385/441/391
+f 363/442/392 362/438/392 377/439/392 378/443/392
+f 371/444/393 370/440/393 385/441/393 386/445/393
+f 364/446/394 363/442/394 378/443/394 379/447/394
+f 372/448/395 371/444/395 386/445/395 387/449/395
+f 365/450/396 364/446/396 379/447/396 380/451/396
+f 358/452/397 297/453/397 373/454/397
+f 206/455/398 372/448/398 387/449/398
+f 366/425/399 365/450/399 380/451/399 381/426/399
+f 359/429/400 358/452/400 373/454/400 374/430/400
+f 386/445/401 385/441/401 400/456/401 401/457/401
+f 379/447/402 378/443/402 393/458/402 394/459/402
+f 387/449/403 386/445/403 401/457/403 402/460/403
+f 380/451/404 379/447/404 394/459/404 395/461/404
+f 373/454/405 297/462/405 388/463/405
+f 206/464/406 387/449/406 402/460/406
+f 381/426/407 380/451/407 395/461/407 396/465/407
+f 374/430/408 373/454/408 388/463/408 389/466/408
+f 382/427/409 381/426/409 396/465/409 397/467/409
+f 375/431/410 374/430/410 389/466/410 390/468/410
+f 383/433/411 382/427/411 397/467/411 398/469/411
+f 376/435/412 375/431/412 390/468/412 391/470/412
+f 384/437/413 383/433/413 398/469/413 399/471/413
+f 377/439/414 376/435/414 391/470/414 392/472/414
+f 385/441/415 384/437/415 399/471/415 400/456/415
+f 378/443/416 377/439/416 392/472/416 393/458/416
+f 398/469/417 397/467/417 412/473/417 413/474/417
+f 391/470/418 390/468/418 405/475/418 406/476/418
+f 399/471/419 398/469/419 413/474/419 414/477/419
+f 392/472/420 391/470/420 406/476/420 407/478/420
+f 400/456/421 399/471/421 414/477/421 415/479/421
+f 393/458/422 392/472/422 407/478/422 408/480/422
+f 401/457/423 400/456/423 415/479/423 416/481/423
+f 394/459/424 393/458/424 408/480/424 409/482/424
+f 402/460/425 401/457/425 416/481/425 417/483/425
+f 395/461/426 394/459/426 409/482/426 410/484/426
+f 388/463/427 297/485/427 403/486/427
+f 206/487/428 402/460/428 417/483/428
+f 396/465/429 395/461/429 410/484/429 411/488/429
+f 389/466/430 388/463/430 403/486/430 404/489/430
+f 397/467/431 396/465/431 411/488/431 412/473/431
+f 390/468/432 389/466/432 404/489/432 405/475/432
+f 417/483/433 416/481/433 431/490/433 432/491/433
+f 410/484/434 409/482/434 424/492/434 425/493/434
+f 403/486/435 297/494/435 418/495/435
+f 206/496/436 417/483/436 432/491/436
+f 411/488/437 410/484/437 425/493/437 426/497/437
+f 404/489/438 403/486/438 418/495/438 419/498/438
+f 412/473/439 411/488/439 426/497/439 427/499/439
+f 405/475/440 404/489/440 419/498/440 420/500/440
+f 413/474/441 412/473/441 427/499/441 428/501/441
+f 406/476/442 405/475/442 420/500/442 421/502/442
+f 414/477/443 413/474/443 428/501/443 429/503/443
+f 407/478/444 406/476/444 421/502/444 422/504/444
+f 415/479/445 414/477/445 429/503/445 430/505/445
+f 408/480/446 407/478/446 422/504/446 423/506/446
+f 416/481/447 415/479/447 430/505/447 431/490/447
+f 409/482/448 408/480/448 423/506/448 424/492/448
+f 421/502/449 420/500/449 435/507/449 436/508/449
+f 429/503/450 428/501/450 443/509/450 444/510/450
+f 422/504/451 421/502/451 436/508/451 437/511/451
+f 430/505/452 429/503/452 444/510/452 445/512/452
+f 423/506/453 422/504/453 437/511/453 438/513/453
+f 431/490/454 430/505/454 445/512/454 446/514/454
+f 424/492/455 423/506/455 438/513/455 439/515/455
+f 432/491/456 431/490/456 446/514/456 447/516/456
+f 425/493/457 424/492/457 439/515/457 440/517/457
+f 418/495/458 297/518/458 433/519/458
+f 206/520/459 432/491/459 447/516/459
+f 426/497/460 425/493/460 440/517/460 441/521/460
+f 419/498/461 418/495/461 433/519/461 434/522/461
+f 427/499/462 426/497/462 441/521/462 442/523/462
+f 420/500/463 419/498/463 434/522/463 435/507/463
+f 428/501/464 427/499/464 442/523/464 443/509/464
+f 440/517/465 439/515/465 454/524/465 455/525/465
+f 433/519/466 297/526/466 448/527/466
+f 206/528/467 447/516/467 462/529/467
+f 441/521/468 440/517/468 455/525/468 456/530/468
+f 434/522/469 433/519/469 448/527/469 449/531/469
+f 442/523/470 441/521/470 456/530/470 457/532/470
+f 435/507/471 434/522/471 449/531/471 450/533/471
+f 443/509/472 442/523/472 457/532/472 458/534/472
+f 436/508/473 435/507/473 450/533/473 451/535/473
+f 444/510/474 443/509/474 458/534/474 459/536/474
+f 437/511/475 436/508/475 451/535/475 452/537/475
+f 445/512/476 444/510/476 459/536/476 460/538/476
+f 438/513/477 437/511/477 452/537/477 453/539/477
+f 446/514/478 445/512/478 460/538/478 461/540/478
+f 439/515/479 438/513/479 453/539/479 454/524/479
+f 447/516/480 446/514/480 461/540/480 462/529/480
+f 459/536/481 458/534/481 473/541/481 474/542/481
+f 452/537/482 451/535/482 466/543/482 467/544/482
+f 460/538/483 459/536/483 474/542/483 475/545/483
+f 453/539/484 452/537/484 467/544/484 468/546/484
+f 461/540/485 460/538/485 475/545/485 476/547/485
+f 454/524/486 453/539/486 468/546/486 469/548/486
+f 462/529/487 461/540/487 476/547/487 477/549/487
+f 455/525/488 454/524/488 469/548/488 470/550/488
+f 448/527/489 297/551/489 463/552/489
+f 206/553/490 462/529/490 477/549/490
+f 456/530/491 455/525/491 470/550/491 471/554/491
+f 449/531/492 448/527/492 463/552/492 464/555/492
+f 457/532/493 456/530/493 471/554/493 472/556/493
+f 450/533/494 449/531/494 464/555/494 465/557/494
+f 458/534/495 457/532/495 472/556/495 473/541/495
+f 451/535/496 450/533/496 465/557/496 466/543/496
+f 463/552/497 297/558/497 1/5/497
+f 206/559/498 477/549/498 482/9/498
+f 471/554/499 470/550/499 8/1/499 9/11/499
+f 464/555/500 463/552/500 1/5/500 2/13/500
+f 472/556/501 471/554/501 9/11/501 478/15/501
+f 465/557/502 464/555/502 2/13/502 3/17/502
+f 473/541/503 472/556/503 478/15/503 479/19/503
+f 466/543/504 465/557/504 3/17/504 4/21/504
+f 474/542/505 473/541/505 479/19/505 480/23/505
+f 467/544/506 466/543/506 4/21/506 5/25/506
+f 475/545/507 474/542/507 480/23/507 10/27/507
+f 468/546/508 467/544/508 5/25/508 6/29/508
+f 476/547/509 475/545/509 10/27/509 481/31/509
+f 469/548/510 468/546/510 6/29/510 7/2/510
+f 477/549/511 476/547/511 481/31/511 482/9/511
+f 470/550/512 469/548/512 7/2/512 8/1/512
diff --git a/assets/models/tort.mtl b/assets/models/tort.mtl
new file mode 100644
index 0000000..6ac0a63
--- /dev/null
+++ b/assets/models/tort.mtl
@@ -0,0 +1,12 @@
+# Blender MTL File: 'None'
+# Material Count: 1
+
+newmtl Material.004
+Ns 323.999994
+Ka 1.000000 1.000000 1.000000
+Kd 0.800000 0.693157 0.000000
+Ks 0.500000 0.500000 0.500000
+Ke 0.000000 0.000000 0.000000
+Ni 1.000000
+d 1.000000
+illum 2
diff --git a/assets/models/tort.obj b/assets/models/tort.obj
new file mode 100644
index 0000000..a294f0f
--- /dev/null
+++ b/assets/models/tort.obj
@@ -0,0 +1,2083 @@
+# Blender v2.90.1 OBJ File: ''
+# www.blender.org
+mtllib tort.mtl
+o Torus
+v 1.250000 0.000000 0.000000
+v 1.216506 0.125000 0.000000
+v 1.125000 0.216506 0.000000
+v 1.000000 0.250000 0.000000
+v 0.875000 0.216506 0.000000
+v 0.783494 0.125000 0.000000
+v 0.750000 0.000000 0.000000
+v 0.783494 -0.125000 0.000000
+v 0.875000 -0.216506 0.000000
+v 1.000000 -0.250000 0.000000
+v 1.125000 -0.216506 0.000000
+v 1.216506 -0.125000 0.000000
+v 1.239306 0.000000 -0.163158
+v 1.206099 0.125000 -0.158786
+v 1.115376 0.216506 -0.146842
+v 0.991445 0.250000 -0.130526
+v 0.867514 0.216506 -0.114210
+v 0.776791 0.125000 -0.102266
+v 0.743584 0.000000 -0.097895
+v 0.776791 -0.125000 -0.102266
+v 0.867514 -0.216506 -0.114210
+v 0.991445 -0.250000 -0.130526
+v 1.115376 -0.216506 -0.146842
+v 1.206099 -0.125000 -0.158786
+v 1.207407 0.000000 -0.323524
+v 1.175055 0.125000 -0.314855
+v 1.086667 0.216506 -0.291171
+v 0.965926 0.250000 -0.258819
+v 0.845185 0.216506 -0.226467
+v 0.756797 0.125000 -0.202783
+v 0.724444 0.000000 -0.194114
+v 0.756797 -0.125000 -0.202783
+v 0.845185 -0.216506 -0.226467
+v 0.965926 -0.250000 -0.258819
+v 1.086667 -0.216506 -0.291171
+v 1.175055 -0.125000 -0.314855
+v 1.154849 0.000000 -0.478354
+v 1.123905 0.125000 -0.465537
+v 1.039364 0.216506 -0.430519
+v 0.923880 0.250000 -0.382683
+v 0.808395 0.216506 -0.334848
+v 0.723854 0.125000 -0.299830
+v 0.692910 0.000000 -0.287013
+v 0.723854 -0.125000 -0.299830
+v 0.808395 -0.216506 -0.334848
+v 0.923880 -0.250000 -0.382683
+v 1.039364 -0.216506 -0.430519
+v 1.123905 -0.125000 -0.465537
+v 1.082532 0.000000 -0.625000
+v 1.053525 0.125000 -0.608253
+v 0.974279 0.216506 -0.562500
+v 0.866025 0.250000 -0.500000
+v 0.757772 0.216506 -0.437500
+v 0.678525 0.125000 -0.391747
+v 0.649519 0.000000 -0.375000
+v 0.678525 -0.125000 -0.391747
+v 0.757772 -0.216506 -0.437500
+v 0.866025 -0.250000 -0.500000
+v 0.974279 -0.216506 -0.562500
+v 1.053525 -0.125000 -0.608253
+v 0.991692 0.000000 -0.760952
+v 0.965119 0.125000 -0.740562
+v 0.892523 0.216506 -0.684856
+v 0.793353 0.250000 -0.608761
+v 0.694184 0.216506 -0.532666
+v 0.621587 0.125000 -0.476961
+v 0.595015 0.000000 -0.456571
+v 0.621587 -0.125000 -0.476961
+v 0.694184 -0.216506 -0.532666
+v 0.793353 -0.250000 -0.608761
+v 0.892523 -0.216506 -0.684856
+v 0.965119 -0.125000 -0.740562
+v 0.883883 0.000000 -0.883884
+v 0.860200 0.125000 -0.860200
+v 0.795495 0.216506 -0.795495
+v 0.707107 0.250000 -0.707107
+v 0.618718 0.216506 -0.618719
+v 0.554014 0.125000 -0.554014
+v 0.530330 0.000000 -0.530330
+v 0.554014 -0.125000 -0.554014
+v 0.618718 -0.216506 -0.618719
+v 0.707107 -0.250000 -0.707107
+v 0.795495 -0.216506 -0.795495
+v 0.860200 -0.125000 -0.860200
+v 0.760952 0.000000 -0.991691
+v 0.740562 0.125000 -0.965119
+v 0.684857 0.216506 -0.892522
+v 0.608762 0.250000 -0.793353
+v 0.532666 0.216506 -0.694184
+v 0.476961 0.125000 -0.621587
+v 0.456571 0.000000 -0.595015
+v 0.476961 -0.125000 -0.621587
+v 0.532666 -0.216506 -0.694184
+v 0.608762 -0.250000 -0.793353
+v 0.684857 -0.216506 -0.892522
+v 0.740562 -0.125000 -0.965119
+v 0.625000 0.000000 -1.082532
+v 0.608253 0.125000 -1.053525
+v 0.562500 0.216506 -0.974279
+v 0.500000 0.250000 -0.866025
+v 0.437500 0.216506 -0.757772
+v 0.391747 0.125000 -0.678525
+v 0.375000 0.000000 -0.649519
+v 0.391747 -0.125000 -0.678525
+v 0.437500 -0.216506 -0.757772
+v 0.500000 -0.250000 -0.866025
+v 0.562500 -0.216506 -0.974279
+v 0.608253 -0.125000 -1.053525
+v 0.478355 0.000000 -1.154849
+v 0.465537 0.125000 -1.123905
+v 0.430519 0.216506 -1.039364
+v 0.382684 0.250000 -0.923879
+v 0.334848 0.216506 -0.808394
+v 0.299830 0.125000 -0.723854
+v 0.287013 0.000000 -0.692910
+v 0.299830 -0.125000 -0.723854
+v 0.334848 -0.216506 -0.808394
+v 0.382684 -0.250000 -0.923879
+v 0.430519 -0.216506 -1.039364
+v 0.465537 -0.125000 -1.123905
+v 0.323524 0.000000 -1.207407
+v 0.314855 0.125000 -1.175055
+v 0.291171 0.216506 -1.086667
+v 0.258819 0.250000 -0.965926
+v 0.226467 0.216506 -0.845185
+v 0.202783 0.125000 -0.756797
+v 0.194114 0.000000 -0.724444
+v 0.202783 -0.125000 -0.756797
+v 0.226467 -0.216506 -0.845185
+v 0.258819 -0.250000 -0.965926
+v 0.291171 -0.216506 -1.086667
+v 0.314855 -0.125000 -1.175055
+v 0.163158 0.000000 -1.239306
+v 0.158786 0.125000 -1.206099
+v 0.146842 0.216506 -1.115376
+v 0.130526 0.250000 -0.991445
+v 0.114210 0.216506 -0.867514
+v 0.102266 0.125000 -0.776791
+v 0.097895 0.000000 -0.743584
+v 0.102266 -0.125000 -0.776791
+v 0.114210 -0.216506 -0.867514
+v 0.130526 -0.250000 -0.991445
+v 0.146842 -0.216506 -1.115376
+v 0.158786 -0.125000 -1.206099
+v 0.000000 0.000000 -1.250000
+v 0.000000 0.125000 -1.216506
+v 0.000000 0.216506 -1.125000
+v 0.000000 0.250000 -1.000000
+v 0.000000 0.216506 -0.875000
+v 0.000000 0.125000 -0.783494
+v 0.000000 0.000000 -0.750000
+v 0.000000 -0.125000 -0.783494
+v 0.000000 -0.216506 -0.875000
+v 0.000000 -0.250000 -1.000000
+v 0.000000 -0.216506 -1.125000
+v 0.000000 -0.125000 -1.216506
+v -0.163158 0.000000 -1.239306
+v -0.158786 0.125000 -1.206099
+v -0.146842 0.216506 -1.115375
+v -0.130526 0.250000 -0.991445
+v -0.114211 0.216506 -0.867514
+v -0.102267 0.125000 -0.776791
+v -0.097895 0.000000 -0.743584
+v -0.102267 -0.125000 -0.776791
+v -0.114211 -0.216506 -0.867514
+v -0.130526 -0.250000 -0.991445
+v -0.146842 -0.216506 -1.115375
+v -0.158786 -0.125000 -1.206099
+v -0.323524 0.000000 -1.207407
+v -0.314855 0.125000 -1.175055
+v -0.291171 0.216506 -1.086667
+v -0.258819 0.250000 -0.965926
+v -0.226467 0.216506 -0.845185
+v -0.202783 0.125000 -0.756797
+v -0.194114 0.000000 -0.724444
+v -0.202783 -0.125000 -0.756797
+v -0.226467 -0.216506 -0.845185
+v -0.258819 -0.250000 -0.965926
+v -0.291171 -0.216506 -1.086667
+v -0.314855 -0.125000 -1.175055
+v -0.478354 0.000000 -1.154849
+v -0.465537 0.125000 -1.123905
+v -0.430519 0.216506 -1.039364
+v -0.382684 0.250000 -0.923880
+v -0.334848 0.216506 -0.808395
+v -0.299830 0.125000 -0.723854
+v -0.287013 0.000000 -0.692910
+v -0.299830 -0.125000 -0.723854
+v -0.334848 -0.216506 -0.808395
+v -0.382684 -0.250000 -0.923880
+v -0.430519 -0.216506 -1.039364
+v -0.465537 -0.125000 -1.123905
+v -0.625000 0.000000 -1.082532
+v -0.608253 0.125000 -1.053526
+v -0.562500 0.216506 -0.974279
+v -0.500000 0.250000 -0.866026
+v -0.437500 0.216506 -0.757772
+v -0.391747 0.125000 -0.678525
+v -0.375000 0.000000 -0.649519
+v -0.391747 -0.125000 -0.678525
+v -0.437500 -0.216506 -0.757772
+v -0.500000 -0.250000 -0.866026
+v -0.562500 -0.216506 -0.974279
+v -0.608253 -0.125000 -1.053526
+v -0.760952 0.000000 -0.991692
+v -0.740562 0.125000 -0.965119
+v -0.684857 0.216506 -0.892522
+v -0.608761 0.250000 -0.793353
+v -0.532666 0.216506 -0.694184
+v -0.476961 0.125000 -0.621587
+v -0.456571 0.000000 -0.595015
+v -0.476961 -0.125000 -0.621587
+v -0.532666 -0.216506 -0.694184
+v -0.608761 -0.250000 -0.793353
+v -0.684857 -0.216506 -0.892522
+v -0.740562 -0.125000 -0.965119
+v -0.883884 0.000000 -0.883883
+v -0.860200 0.125000 -0.860200
+v -0.795495 0.216506 -0.795495
+v -0.707107 0.250000 -0.707107
+v -0.618719 0.216506 -0.618718
+v -0.554014 0.125000 -0.554013
+v -0.530330 0.000000 -0.530330
+v -0.554014 -0.125000 -0.554013
+v -0.618719 -0.216506 -0.618718
+v -0.707107 -0.250000 -0.707107
+v -0.795495 -0.216506 -0.795495
+v -0.860200 -0.125000 -0.860200
+v -0.991692 0.000000 -0.760952
+v -0.965119 0.125000 -0.740562
+v -0.892522 0.216506 -0.684857
+v -0.793353 0.250000 -0.608761
+v -0.694184 0.216506 -0.532666
+v -0.621587 0.125000 -0.476961
+v -0.595015 0.000000 -0.456571
+v -0.621587 -0.125000 -0.476961
+v -0.694184 -0.216506 -0.532666
+v -0.793353 -0.250000 -0.608761
+v -0.892522 -0.216506 -0.684857
+v -0.965119 -0.125000 -0.740562
+v -1.082532 0.000000 -0.625000
+v -1.053525 0.125000 -0.608253
+v -0.974278 0.216506 -0.562500
+v -0.866025 0.250000 -0.500000
+v -0.757772 0.216506 -0.437500
+v -0.678525 0.125000 -0.391747
+v -0.649519 0.000000 -0.375000
+v -0.678525 -0.125000 -0.391747
+v -0.757772 -0.216506 -0.437500
+v -0.866025 -0.250000 -0.500000
+v -0.974278 -0.216506 -0.562500
+v -1.053525 -0.125000 -0.608253
+v -1.154849 0.000000 -0.478354
+v -1.123905 0.125000 -0.465537
+v -1.039364 0.216506 -0.430519
+v -0.923880 0.250000 -0.382683
+v -0.808395 0.216506 -0.334848
+v -0.723854 0.125000 -0.299830
+v -0.692910 0.000000 -0.287013
+v -0.723854 -0.125000 -0.299830
+v -0.808395 -0.216506 -0.334848
+v -0.923880 -0.250000 -0.382683
+v -1.039364 -0.216506 -0.430519
+v -1.123905 -0.125000 -0.465537
+v -1.207407 0.000000 -0.323524
+v -1.175055 0.125000 -0.314855
+v -1.086667 0.216506 -0.291171
+v -0.965926 0.250000 -0.258819
+v -0.845185 0.216506 -0.226467
+v -0.756797 0.125000 -0.202783
+v -0.724444 0.000000 -0.194114
+v -0.756797 -0.125000 -0.202783
+v -0.845185 -0.216506 -0.226467
+v -0.965926 -0.250000 -0.258819
+v -1.086667 -0.216506 -0.291171
+v -1.175055 -0.125000 -0.314855
+v -1.239306 0.000000 -0.163158
+v -1.206099 0.125000 -0.158786
+v -1.115375 0.216506 -0.146842
+v -0.991445 0.250000 -0.130526
+v -0.867514 0.216506 -0.114211
+v -0.776791 0.125000 -0.102267
+v -0.743584 0.000000 -0.097895
+v -0.776791 -0.125000 -0.102267
+v -0.867514 -0.216506 -0.114211
+v -0.991445 -0.250000 -0.130526
+v -1.115375 -0.216506 -0.146842
+v -1.206099 -0.125000 -0.158786
+v -1.250000 0.000000 -0.000000
+v -1.216506 0.125000 -0.000000
+v -1.125000 0.216506 -0.000000
+v -1.000000 0.250000 -0.000000
+v -0.875000 0.216506 -0.000000
+v -0.783494 0.125000 -0.000000
+v -0.750000 0.000000 -0.000000
+v -0.783494 -0.125000 -0.000000
+v -0.875000 -0.216506 -0.000000
+v -1.000000 -0.250000 -0.000000
+v -1.125000 -0.216506 -0.000000
+v -1.216506 -0.125000 -0.000000
+v -1.239306 0.000000 0.163158
+v -1.206099 0.125000 0.158786
+v -1.115375 0.216506 0.146842
+v -0.991445 0.250000 0.130526
+v -0.867514 0.216506 0.114211
+v -0.776791 0.125000 0.102267
+v -0.743584 0.000000 0.097895
+v -0.776791 -0.125000 0.102267
+v -0.867514 -0.216506 0.114211
+v -0.991445 -0.250000 0.130526
+v -1.115375 -0.216506 0.146842
+v -1.206099 -0.125000 0.158786
+v -1.207407 0.000000 0.323524
+v -1.175055 0.125000 0.314855
+v -1.086667 0.216506 0.291171
+v -0.965926 0.250000 0.258819
+v -0.845185 0.216506 0.226467
+v -0.756797 0.125000 0.202783
+v -0.724444 0.000000 0.194114
+v -0.756797 -0.125000 0.202783
+v -0.845185 -0.216506 0.226467
+v -0.965926 -0.250000 0.258819
+v -1.086667 -0.216506 0.291171
+v -1.175055 -0.125000 0.314855
+v -1.154850 0.000000 0.478354
+v -1.123906 0.125000 0.465536
+v -1.039365 0.216506 0.430518
+v -0.923880 0.250000 0.382683
+v -0.808395 0.216506 0.334848
+v -0.723854 0.125000 0.299830
+v -0.692910 0.000000 0.287012
+v -0.723854 -0.125000 0.299830
+v -0.808395 -0.216506 0.334848
+v -0.923880 -0.250000 0.382683
+v -1.039365 -0.216506 0.430518
+v -1.123906 -0.125000 0.465536
+v -1.082532 0.000000 0.625000
+v -1.053526 0.125000 0.608253
+v -0.974279 0.216506 0.562500
+v -0.866026 0.250000 0.500000
+v -0.757772 0.216506 0.437500
+v -0.678525 0.125000 0.391747
+v -0.649519 0.000000 0.375000
+v -0.678525 -0.125000 0.391747
+v -0.757772 -0.216506 0.437500
+v -0.866026 -0.250000 0.500000
+v -0.974279 -0.216506 0.562500
+v -1.053526 -0.125000 0.608253
+v -0.991692 0.000000 0.760952
+v -0.965119 0.125000 0.740562
+v -0.892522 0.216506 0.684857
+v -0.793353 0.250000 0.608761
+v -0.694184 0.216506 0.532666
+v -0.621587 0.125000 0.476961
+v -0.595015 0.000000 0.456571
+v -0.621587 -0.125000 0.476961
+v -0.694184 -0.216506 0.532666
+v -0.793353 -0.250000 0.608761
+v -0.892522 -0.216506 0.684857
+v -0.965119 -0.125000 0.740562
+v -0.883884 0.000000 0.883883
+v -0.860200 0.125000 0.860200
+v -0.795495 0.216506 0.795495
+v -0.707107 0.250000 0.707107
+v -0.618719 0.216506 0.618718
+v -0.554014 0.125000 0.554013
+v -0.530330 0.000000 0.530330
+v -0.554014 -0.125000 0.554013
+v -0.618719 -0.216506 0.618718
+v -0.707107 -0.250000 0.707107
+v -0.795495 -0.216506 0.795495
+v -0.860200 -0.125000 0.860200
+v -0.760952 0.000000 0.991691
+v -0.740563 0.125000 0.965119
+v -0.684857 0.216506 0.892522
+v -0.608762 0.250000 0.793353
+v -0.532667 0.216506 0.694184
+v -0.476961 0.125000 0.621587
+v -0.456571 0.000000 0.595015
+v -0.476961 -0.125000 0.621587
+v -0.532667 -0.216506 0.694184
+v -0.608762 -0.250000 0.793353
+v -0.684857 -0.216506 0.892522
+v -0.740563 -0.125000 0.965119
+v -0.625000 0.000000 1.082532
+v -0.608253 0.125000 1.053526
+v -0.562500 0.216506 0.974279
+v -0.500000 0.250000 0.866026
+v -0.437500 0.216506 0.757772
+v -0.391747 0.125000 0.678525
+v -0.375000 0.000000 0.649519
+v -0.391747 -0.125000 0.678525
+v -0.437500 -0.216506 0.757772
+v -0.500000 -0.250000 0.866026
+v -0.562500 -0.216506 0.974279
+v -0.608253 -0.125000 1.053526
+v -0.478354 0.000000 1.154849
+v -0.465537 0.125000 1.123905
+v -0.430519 0.216506 1.039364
+v -0.382684 0.250000 0.923880
+v -0.334848 0.216506 0.808395
+v -0.299830 0.125000 0.723854
+v -0.287013 0.000000 0.692910
+v -0.299830 -0.125000 0.723854
+v -0.334848 -0.216506 0.808395
+v -0.382684 -0.250000 0.923880
+v -0.430519 -0.216506 1.039364
+v -0.465537 -0.125000 1.123905
+v -0.323524 0.000000 1.207407
+v -0.314855 0.125000 1.175055
+v -0.291172 0.216506 1.086666
+v -0.258819 0.250000 0.965926
+v -0.226467 0.216506 0.845185
+v -0.202783 0.125000 0.756797
+v -0.194115 0.000000 0.724444
+v -0.202783 -0.125000 0.756797
+v -0.226467 -0.216506 0.845185
+v -0.258819 -0.250000 0.965926
+v -0.291172 -0.216506 1.086666
+v -0.314855 -0.125000 1.175055
+v -0.163158 0.000000 1.239306
+v -0.158787 0.125000 1.206099
+v -0.146843 0.216506 1.115375
+v -0.130527 0.250000 0.991445
+v -0.114211 0.216506 0.867514
+v -0.102267 0.125000 0.776791
+v -0.097895 0.000000 0.743584
+v -0.102267 -0.125000 0.776791
+v -0.114211 -0.216506 0.867514
+v -0.130527 -0.250000 0.991445
+v -0.146843 -0.216506 1.115375
+v -0.158787 -0.125000 1.206099
+v 0.000000 0.000000 1.250000
+v 0.000000 0.125000 1.216506
+v 0.000000 0.216506 1.125000
+v 0.000000 0.250000 1.000000
+v 0.000000 0.216506 0.875000
+v 0.000000 0.125000 0.783494
+v 0.000000 0.000000 0.750000
+v 0.000000 -0.125000 0.783494
+v 0.000000 -0.216506 0.875000
+v 0.000000 -0.250000 1.000000
+v 0.000000 -0.216506 1.125000
+v 0.000000 -0.125000 1.216506
+v 0.163158 0.000000 1.239306
+v 0.158786 0.125000 1.206099
+v 0.146842 0.216506 1.115376
+v 0.130526 0.250000 0.991445
+v 0.114210 0.216506 0.867514
+v 0.102266 0.125000 0.776791
+v 0.097895 0.000000 0.743584
+v 0.102266 -0.125000 0.776791
+v 0.114210 -0.216506 0.867514
+v 0.130526 -0.250000 0.991445
+v 0.146842 -0.216506 1.115376
+v 0.158786 -0.125000 1.206099
+v 0.323523 0.000000 1.207407
+v 0.314854 0.125000 1.175055
+v 0.291171 0.216506 1.086667
+v 0.258819 0.250000 0.965926
+v 0.226466 0.216506 0.845185
+v 0.202783 0.125000 0.756797
+v 0.194114 0.000000 0.724444
+v 0.202783 -0.125000 0.756797
+v 0.226466 -0.216506 0.845185
+v 0.258819 -0.250000 0.965926
+v 0.291171 -0.216506 1.086667
+v 0.314854 -0.125000 1.175055
+v 0.478355 0.000000 1.154849
+v 0.465537 0.125000 1.123905
+v 0.430519 0.216506 1.039364
+v 0.382684 0.250000 0.923879
+v 0.334848 0.216506 0.808394
+v 0.299830 0.125000 0.723854
+v 0.287013 0.000000 0.692910
+v 0.299830 -0.125000 0.723854
+v 0.334848 -0.216506 0.808394
+v 0.382684 -0.250000 0.923879
+v 0.430519 -0.216506 1.039364
+v 0.465537 -0.125000 1.123905
+v 0.625000 0.000000 1.082532
+v 0.608253 0.125000 1.053525
+v 0.562500 0.216506 0.974279
+v 0.500000 0.250000 0.866025
+v 0.437500 0.216506 0.757772
+v 0.391747 0.125000 0.678525
+v 0.375000 0.000000 0.649519
+v 0.391747 -0.125000 0.678525
+v 0.437500 -0.216506 0.757772
+v 0.500000 -0.250000 0.866025
+v 0.562500 -0.216506 0.974279
+v 0.608253 -0.125000 1.053525
+v 0.760952 0.000000 0.991692
+v 0.740562 0.125000 0.965120
+v 0.684856 0.216506 0.892523
+v 0.608761 0.250000 0.793353
+v 0.532666 0.216506 0.694184
+v 0.476961 0.125000 0.621587
+v 0.456571 0.000000 0.595015
+v 0.476961 -0.125000 0.621587
+v 0.532666 -0.216506 0.694184
+v 0.608761 -0.250000 0.793353
+v 0.684856 -0.216506 0.892523
+v 0.740562 -0.125000 0.965120
+v 0.883883 0.000000 0.883884
+v 0.860199 0.125000 0.860200
+v 0.795495 0.216506 0.795496
+v 0.707106 0.250000 0.707107
+v 0.618718 0.216506 0.618719
+v 0.554013 0.125000 0.554014
+v 0.530330 0.000000 0.530330
+v 0.554013 -0.125000 0.554014
+v 0.618718 -0.216506 0.618719
+v 0.707106 -0.250000 0.707107
+v 0.795495 -0.216506 0.795496
+v 0.860199 -0.125000 0.860200
+v 0.991692 0.000000 0.760952
+v 0.965119 0.125000 0.740562
+v 0.892523 0.216506 0.684856
+v 0.793353 0.250000 0.608761
+v 0.694184 0.216506 0.532666
+v 0.621587 0.125000 0.476961
+v 0.595015 0.000000 0.456571
+v 0.621587 -0.125000 0.476961
+v 0.694184 -0.216506 0.532666
+v 0.793353 -0.250000 0.608761
+v 0.892523 -0.216506 0.684856
+v 0.965119 -0.125000 0.740562
+v 1.082532 0.000000 0.625000
+v 1.053525 0.125000 0.608253
+v 0.974279 0.216506 0.562500
+v 0.866025 0.250000 0.500000
+v 0.757772 0.216506 0.437500
+v 0.678525 0.125000 0.391747
+v 0.649519 0.000000 0.375000
+v 0.678525 -0.125000 0.391747
+v 0.757772 -0.216506 0.437500
+v 0.866025 -0.250000 0.500000
+v 0.974279 -0.216506 0.562500
+v 1.053525 -0.125000 0.608253
+v 1.154849 0.000000 0.478355
+v 1.123905 0.125000 0.465537
+v 1.039364 0.216506 0.430519
+v 0.923879 0.250000 0.382684
+v 0.808394 0.216506 0.334848
+v 0.723854 0.125000 0.299830
+v 0.692910 0.000000 0.287013
+v 0.723854 -0.125000 0.299830
+v 0.808394 -0.216506 0.334848
+v 0.923879 -0.250000 0.382684
+v 1.039364 -0.216506 0.430519
+v 1.123905 -0.125000 0.465537
+v 1.207407 0.000000 0.323523
+v 1.175055 0.125000 0.314855
+v 1.086667 0.216506 0.291171
+v 0.965926 0.250000 0.258819
+v 0.845185 0.216506 0.226466
+v 0.756797 0.125000 0.202783
+v 0.724444 0.000000 0.194114
+v 0.756797 -0.125000 0.202783
+v 0.845185 -0.216506 0.226466
+v 0.965926 -0.250000 0.258819
+v 1.086667 -0.216506 0.291171
+v 1.175055 -0.125000 0.314855
+v 1.239306 0.000000 0.163158
+v 1.206099 0.125000 0.158786
+v 1.115376 0.216506 0.146842
+v 0.991445 0.250000 0.130526
+v 0.867514 0.216506 0.114210
+v 0.776791 0.125000 0.102266
+v 0.743584 0.000000 0.097895
+v 0.776791 -0.125000 0.102266
+v 0.867514 -0.216506 0.114210
+v 0.991445 -0.250000 0.130526
+v 1.115376 -0.216506 0.146842
+v 1.206099 -0.125000 0.158786
+vt 0.500000 0.500000
+vt 0.520833 0.500000
+vt 0.520833 0.583333
+vt 0.500000 0.583333
+vt 0.520833 0.666667
+vt 0.500000 0.666667
+vt 0.520833 0.750000
+vt 0.500000 0.750000
+vt 0.520833 0.833333
+vt 0.500000 0.833333
+vt 0.520833 0.916667
+vt 0.500000 0.916667
+vt 0.520833 1.000000
+vt 0.500000 1.000000
+vt 0.500000 0.000000
+vt 0.520833 0.000000
+vt 0.520833 0.083333
+vt 0.500000 0.083333
+vt 0.520833 0.166667
+vt 0.500000 0.166667
+vt 0.520833 0.250000
+vt 0.500000 0.250000
+vt 0.520833 0.333333
+vt 0.500000 0.333333
+vt 0.520833 0.416667
+vt 0.500000 0.416667
+vt 0.541667 0.500000
+vt 0.541667 0.583333
+vt 0.541667 0.666667
+vt 0.541667 0.750000
+vt 0.541667 0.833333
+vt 0.541667 0.916667
+vt 0.541667 1.000000
+vt 0.541667 0.000000
+vt 0.541667 0.083333
+vt 0.541667 0.166667
+vt 0.541667 0.250000
+vt 0.541667 0.333333
+vt 0.541667 0.416667
+vt 0.562500 0.500000
+vt 0.562500 0.583333
+vt 0.562500 0.666667
+vt 0.562500 0.750000
+vt 0.562500 0.833333
+vt 0.562500 0.916667
+vt 0.562500 1.000000
+vt 0.562500 0.000000
+vt 0.562500 0.083333
+vt 0.562500 0.166667
+vt 0.562500 0.250000
+vt 0.562500 0.333333
+vt 0.562500 0.416667
+vt 0.583333 0.500000
+vt 0.583333 0.583333
+vt 0.583333 0.666667
+vt 0.583333 0.750000
+vt 0.583333 0.833333
+vt 0.583333 0.916667
+vt 0.583333 1.000000
+vt 0.583333 0.000000
+vt 0.583333 0.083333
+vt 0.583333 0.166667
+vt 0.583333 0.250000
+vt 0.583333 0.333333
+vt 0.583333 0.416667
+vt 0.604167 0.500000
+vt 0.604167 0.583333
+vt 0.604167 0.666667
+vt 0.604167 0.750000
+vt 0.604167 0.833333
+vt 0.604167 0.916667
+vt 0.604167 1.000000
+vt 0.604167 0.000000
+vt 0.604167 0.083333
+vt 0.604167 0.166667
+vt 0.604167 0.250000
+vt 0.604167 0.333333
+vt 0.604167 0.416667
+vt 0.625000 0.500000
+vt 0.625000 0.583333
+vt 0.625000 0.666667
+vt 0.625000 0.750000
+vt 0.625000 0.833333
+vt 0.625000 0.916667
+vt 0.625000 1.000000
+vt 0.625000 0.000000
+vt 0.625000 0.083333
+vt 0.625000 0.166667
+vt 0.625000 0.250000
+vt 0.625000 0.333333
+vt 0.625000 0.416667
+vt 0.645833 0.500000
+vt 0.645833 0.583333
+vt 0.645833 0.666667
+vt 0.645833 0.750000
+vt 0.645833 0.833333
+vt 0.645833 0.916667
+vt 0.645833 1.000000
+vt 0.645833 0.000000
+vt 0.645833 0.083333
+vt 0.645833 0.166667
+vt 0.645833 0.250000
+vt 0.645833 0.333333
+vt 0.645833 0.416667
+vt 0.666667 0.500000
+vt 0.666667 0.583333
+vt 0.666667 0.666667
+vt 0.666667 0.750000
+vt 0.666667 0.833333
+vt 0.666667 0.916667
+vt 0.666667 1.000000
+vt 0.666667 0.000000
+vt 0.666667 0.083333
+vt 0.666667 0.166667
+vt 0.666667 0.250000
+vt 0.666667 0.333333
+vt 0.666667 0.416667
+vt 0.687500 0.500000
+vt 0.687500 0.583333
+vt 0.687500 0.666667
+vt 0.687500 0.750000
+vt 0.687500 0.833333
+vt 0.687500 0.916667
+vt 0.687500 1.000000
+vt 0.687500 0.000000
+vt 0.687500 0.083333
+vt 0.687500 0.166667
+vt 0.687500 0.250000
+vt 0.687500 0.333333
+vt 0.687500 0.416667
+vt 0.708333 0.500000
+vt 0.708333 0.583333
+vt 0.708333 0.666667
+vt 0.708333 0.750000
+vt 0.708333 0.833333
+vt 0.708333 0.916667
+vt 0.708333 1.000000
+vt 0.708333 0.000000
+vt 0.708333 0.083333
+vt 0.708333 0.166667
+vt 0.708333 0.250000
+vt 0.708333 0.333333
+vt 0.708333 0.416667
+vt 0.729167 0.500000
+vt 0.729167 0.583333
+vt 0.729167 0.666667
+vt 0.729167 0.750000
+vt 0.729167 0.833333
+vt 0.729167 0.916667
+vt 0.729167 1.000000
+vt 0.729167 0.000000
+vt 0.729167 0.083333
+vt 0.729167 0.166667
+vt 0.729167 0.250000
+vt 0.729167 0.333333
+vt 0.729167 0.416667
+vt 0.750000 0.500000
+vt 0.750000 0.583333
+vt 0.750000 0.666667
+vt 0.750000 0.750000
+vt 0.750000 0.833333
+vt 0.750000 0.916667
+vt 0.750000 1.000000
+vt 0.750000 0.000000
+vt 0.750000 0.083333
+vt 0.750000 0.166667
+vt 0.750000 0.250000
+vt 0.750000 0.333333
+vt 0.750000 0.416667
+vt 0.770833 0.500000
+vt 0.770833 0.583333
+vt 0.770833 0.666667
+vt 0.770833 0.750000
+vt 0.770833 0.833333
+vt 0.770833 0.916667
+vt 0.770833 1.000000
+vt 0.770833 0.000000
+vt 0.770833 0.083333
+vt 0.770833 0.166667
+vt 0.770833 0.250000
+vt 0.770833 0.333333
+vt 0.770833 0.416667
+vt 0.791667 0.500000
+vt 0.791667 0.583333
+vt 0.791667 0.666667
+vt 0.791667 0.750000
+vt 0.791667 0.833333
+vt 0.791667 0.916667
+vt 0.791667 1.000000
+vt 0.791667 0.000000
+vt 0.791667 0.083333
+vt 0.791667 0.166667
+vt 0.791667 0.250000
+vt 0.791667 0.333333
+vt 0.791667 0.416667
+vt 0.812500 0.500000
+vt 0.812500 0.583333
+vt 0.812500 0.666667
+vt 0.812500 0.750000
+vt 0.812500 0.833333
+vt 0.812500 0.916667
+vt 0.812500 1.000000
+vt 0.812500 0.000000
+vt 0.812500 0.083333
+vt 0.812500 0.166667
+vt 0.812500 0.250000
+vt 0.812500 0.333333
+vt 0.812500 0.416667
+vt 0.833333 0.500000
+vt 0.833333 0.583333
+vt 0.833333 0.666667
+vt 0.833333 0.750000
+vt 0.833333 0.833333
+vt 0.833333 0.916667
+vt 0.833333 1.000000
+vt 0.833333 0.000000
+vt 0.833333 0.083333
+vt 0.833333 0.166667
+vt 0.833333 0.250000
+vt 0.833333 0.333333
+vt 0.833333 0.416667
+vt 0.854167 0.500000
+vt 0.854167 0.583333
+vt 0.854167 0.666667
+vt 0.854167 0.750000
+vt 0.854167 0.833333
+vt 0.854167 0.916667
+vt 0.854167 1.000000
+vt 0.854167 0.000000
+vt 0.854167 0.083333
+vt 0.854167 0.166667
+vt 0.854167 0.250000
+vt 0.854167 0.333333
+vt 0.854167 0.416667
+vt 0.875000 0.500000
+vt 0.875000 0.583333
+vt 0.875000 0.666667
+vt 0.875000 0.750000
+vt 0.875000 0.833333
+vt 0.875000 0.916667
+vt 0.875000 1.000000
+vt 0.875000 0.000000
+vt 0.875000 0.083333
+vt 0.875000 0.166667
+vt 0.875000 0.250000
+vt 0.875000 0.333333
+vt 0.875000 0.416667
+vt 0.895833 0.500000
+vt 0.895833 0.583333
+vt 0.895833 0.666667
+vt 0.895833 0.750000
+vt 0.895833 0.833333
+vt 0.895833 0.916667
+vt 0.895833 1.000000
+vt 0.895833 0.000000
+vt 0.895833 0.083333
+vt 0.895833 0.166667
+vt 0.895833 0.250000
+vt 0.895833 0.333333
+vt 0.895833 0.416667
+vt 0.916667 0.500000
+vt 0.916667 0.583333
+vt 0.916667 0.666667
+vt 0.916667 0.750000
+vt 0.916667 0.833333
+vt 0.916667 0.916667
+vt 0.916667 1.000000
+vt 0.916667 0.000000
+vt 0.916667 0.083333
+vt 0.916667 0.166667
+vt 0.916667 0.250000
+vt 0.916667 0.333333
+vt 0.916667 0.416667
+vt 0.937500 0.500000
+vt 0.937500 0.583333
+vt 0.937500 0.666667
+vt 0.937500 0.750000
+vt 0.937500 0.833333
+vt 0.937500 0.916667
+vt 0.937500 1.000000
+vt 0.937500 0.000000
+vt 0.937500 0.083333
+vt 0.937500 0.166667
+vt 0.937500 0.250000
+vt 0.937500 0.333333
+vt 0.937500 0.416667
+vt 0.958333 0.500000
+vt 0.958333 0.583333
+vt 0.958333 0.666667
+vt 0.958333 0.750000
+vt 0.958333 0.833333
+vt 0.958333 0.916667
+vt 0.958333 1.000000
+vt 0.958333 0.000000
+vt 0.958333 0.083333
+vt 0.958333 0.166667
+vt 0.958333 0.250000
+vt 0.958333 0.333333
+vt 0.958333 0.416667
+vt 0.979167 0.500000
+vt 0.979167 0.583333
+vt 0.979167 0.666667
+vt 0.979167 0.750000
+vt 0.979167 0.833333
+vt 0.979167 0.916667
+vt 0.979167 1.000000
+vt 0.979167 0.000000
+vt 0.979167 0.083333
+vt 0.979167 0.166667
+vt 0.979167 0.250000
+vt 0.979167 0.333333
+vt 0.979167 0.416667
+vt 1.000000 0.500000
+vt 1.000000 0.583333
+vt 1.000000 0.666667
+vt 1.000000 0.750000
+vt 1.000000 0.833333
+vt 1.000000 0.916667
+vt 1.000000 1.000000
+vt 1.000000 0.000000
+vt 1.000000 0.083333
+vt 1.000000 0.166667
+vt 1.000000 0.250000
+vt 1.000000 0.333333
+vt 1.000000 0.416667
+vt 0.000000 0.500000
+vt 0.020833 0.500000
+vt 0.020833 0.583333
+vt 0.000000 0.583333
+vt 0.020833 0.666667
+vt 0.000000 0.666667
+vt 0.020833 0.750000
+vt 0.000000 0.750000
+vt 0.020833 0.833333
+vt 0.000000 0.833333
+vt 0.020833 0.916667
+vt 0.000000 0.916667
+vt 0.020833 1.000000
+vt 0.000000 1.000000
+vt 0.000000 0.000000
+vt 0.020833 0.000000
+vt 0.020833 0.083333
+vt 0.000000 0.083333
+vt 0.020833 0.166667
+vt 0.000000 0.166667
+vt 0.020833 0.250000
+vt 0.000000 0.250000
+vt 0.020833 0.333333
+vt 0.000000 0.333333
+vt 0.020833 0.416667
+vt 0.000000 0.416667
+vt 0.041667 0.500000
+vt 0.041667 0.583333
+vt 0.041667 0.666667
+vt 0.041667 0.750000
+vt 0.041667 0.833333
+vt 0.041667 0.916667
+vt 0.041667 1.000000
+vt 0.041667 0.000000
+vt 0.041667 0.083333
+vt 0.041667 0.166667
+vt 0.041667 0.250000
+vt 0.041667 0.333333
+vt 0.041667 0.416667
+vt 0.062500 0.500000
+vt 0.062500 0.583333
+vt 0.062500 0.666667
+vt 0.062500 0.750000
+vt 0.062500 0.833333
+vt 0.062500 0.916667
+vt 0.062500 1.000000
+vt 0.062500 0.000000
+vt 0.062500 0.083333
+vt 0.062500 0.166667
+vt 0.062500 0.250000
+vt 0.062500 0.333333
+vt 0.062500 0.416667
+vt 0.083333 0.500000
+vt 0.083333 0.583333
+vt 0.083333 0.666667
+vt 0.083333 0.750000
+vt 0.083333 0.833333
+vt 0.083333 0.916667
+vt 0.083333 1.000000
+vt 0.083333 0.000000
+vt 0.083333 0.083333
+vt 0.083333 0.166667
+vt 0.083333 0.250000
+vt 0.083333 0.333333
+vt 0.083333 0.416667
+vt 0.104167 0.500000
+vt 0.104167 0.583333
+vt 0.104167 0.666667
+vt 0.104167 0.750000
+vt 0.104167 0.833333
+vt 0.104167 0.916667
+vt 0.104167 1.000000
+vt 0.104167 0.000000
+vt 0.104167 0.083333
+vt 0.104167 0.166667
+vt 0.104167 0.250000
+vt 0.104167 0.333333
+vt 0.104167 0.416667
+vt 0.125000 0.500000
+vt 0.125000 0.583333
+vt 0.125000 0.666667
+vt 0.125000 0.750000
+vt 0.125000 0.833333
+vt 0.125000 0.916667
+vt 0.125000 1.000000
+vt 0.125000 0.000000
+vt 0.125000 0.083333
+vt 0.125000 0.166667
+vt 0.125000 0.250000
+vt 0.125000 0.333333
+vt 0.125000 0.416667
+vt 0.145833 0.500000
+vt 0.145833 0.583333
+vt 0.145833 0.666667
+vt 0.145833 0.750000
+vt 0.145833 0.833333
+vt 0.145833 0.916667
+vt 0.145833 1.000000
+vt 0.145833 0.000000
+vt 0.145833 0.083333
+vt 0.145833 0.166667
+vt 0.145833 0.250000
+vt 0.145833 0.333333
+vt 0.145833 0.416667
+vt 0.166667 0.500000
+vt 0.166667 0.583333
+vt 0.166667 0.666667
+vt 0.166667 0.750000
+vt 0.166667 0.833333
+vt 0.166667 0.916667
+vt 0.166667 1.000000
+vt 0.166667 0.000000
+vt 0.166667 0.083333
+vt 0.166667 0.166667
+vt 0.166667 0.250000
+vt 0.166667 0.333333
+vt 0.166667 0.416667
+vt 0.187500 0.500000
+vt 0.187500 0.583333
+vt 0.187500 0.666667
+vt 0.187500 0.750000
+vt 0.187500 0.833333
+vt 0.187500 0.916667
+vt 0.187500 1.000000
+vt 0.187500 0.000000
+vt 0.187500 0.083333
+vt 0.187500 0.166667
+vt 0.187500 0.250000
+vt 0.187500 0.333333
+vt 0.187500 0.416667
+vt 0.208333 0.500000
+vt 0.208333 0.583333
+vt 0.208333 0.666667
+vt 0.208333 0.750000
+vt 0.208333 0.833333
+vt 0.208333 0.916667
+vt 0.208333 1.000000
+vt 0.208333 0.000000
+vt 0.208333 0.083333
+vt 0.208333 0.166667
+vt 0.208333 0.250000
+vt 0.208333 0.333333
+vt 0.208333 0.416667
+vt 0.229167 0.500000
+vt 0.229167 0.583333
+vt 0.229167 0.666667
+vt 0.229167 0.750000
+vt 0.229167 0.833333
+vt 0.229167 0.916667
+vt 0.229167 1.000000
+vt 0.229167 0.000000
+vt 0.229167 0.083333
+vt 0.229167 0.166667
+vt 0.229167 0.250000
+vt 0.229167 0.333333
+vt 0.229167 0.416667
+vt 0.250000 0.500000
+vt 0.250000 0.583333
+vt 0.250000 0.666667
+vt 0.250000 0.750000
+vt 0.250000 0.833333
+vt 0.250000 0.916667
+vt 0.250000 1.000000
+vt 0.250000 0.000000
+vt 0.250000 0.083333
+vt 0.250000 0.166667
+vt 0.250000 0.250000
+vt 0.250000 0.333333
+vt 0.250000 0.416667
+vt 0.270833 0.500000
+vt 0.270833 0.583333
+vt 0.270833 0.666667
+vt 0.270833 0.750000
+vt 0.270833 0.833333
+vt 0.270833 0.916667
+vt 0.270833 1.000000
+vt 0.270833 0.000000
+vt 0.270833 0.083333
+vt 0.270833 0.166667
+vt 0.270833 0.250000
+vt 0.270833 0.333333
+vt 0.270833 0.416667
+vt 0.291667 0.500000
+vt 0.291667 0.583333
+vt 0.291667 0.666667
+vt 0.291667 0.750000
+vt 0.291667 0.833333
+vt 0.291667 0.916667
+vt 0.291667 1.000000
+vt 0.291667 0.000000
+vt 0.291667 0.083333
+vt 0.291667 0.166667
+vt 0.291667 0.250000
+vt 0.291667 0.333333
+vt 0.291667 0.416667
+vt 0.312500 0.500000
+vt 0.312500 0.583333
+vt 0.312500 0.666667
+vt 0.312500 0.750000
+vt 0.312500 0.833333
+vt 0.312500 0.916667
+vt 0.312500 1.000000
+vt 0.312500 0.000000
+vt 0.312500 0.083333
+vt 0.312500 0.166667
+vt 0.312500 0.250000
+vt 0.312500 0.333333
+vt 0.312500 0.416667
+vt 0.333333 0.500000
+vt 0.333333 0.583333
+vt 0.333333 0.666667
+vt 0.333333 0.750000
+vt 0.333333 0.833333
+vt 0.333333 0.916667
+vt 0.333333 1.000000
+vt 0.333333 0.000000
+vt 0.333333 0.083333
+vt 0.333333 0.166667
+vt 0.333333 0.250000
+vt 0.333333 0.333333
+vt 0.333333 0.416667
+vt 0.354167 0.500000
+vt 0.354167 0.583333
+vt 0.354167 0.666667
+vt 0.354167 0.750000
+vt 0.354167 0.833333
+vt 0.354167 0.916667
+vt 0.354167 1.000000
+vt 0.354167 0.000000
+vt 0.354167 0.083333
+vt 0.354167 0.166667
+vt 0.354167 0.250000
+vt 0.354167 0.333333
+vt 0.354167 0.416667
+vt 0.375000 0.500000
+vt 0.375000 0.583333
+vt 0.375000 0.666667
+vt 0.375000 0.750000
+vt 0.375000 0.833333
+vt 0.375000 0.916667
+vt 0.375000 1.000000
+vt 0.375000 0.000000
+vt 0.375000 0.083333
+vt 0.375000 0.166667
+vt 0.375000 0.250000
+vt 0.375000 0.333333
+vt 0.375000 0.416667
+vt 0.395833 0.500000
+vt 0.395833 0.583333
+vt 0.395833 0.666667
+vt 0.395833 0.750000
+vt 0.395833 0.833333
+vt 0.395833 0.916667
+vt 0.395833 1.000000
+vt 0.395833 0.000000
+vt 0.395833 0.083333
+vt 0.395833 0.166667
+vt 0.395833 0.250000
+vt 0.395833 0.333333
+vt 0.395833 0.416667
+vt 0.416667 0.500000
+vt 0.416667 0.583333
+vt 0.416667 0.666667
+vt 0.416667 0.750000
+vt 0.416667 0.833333
+vt 0.416667 0.916667
+vt 0.416667 1.000000
+vt 0.416667 0.000000
+vt 0.416667 0.083333
+vt 0.416667 0.166667
+vt 0.416667 0.250000
+vt 0.416667 0.333333
+vt 0.416667 0.416667
+vt 0.437500 0.500000
+vt 0.437500 0.583333
+vt 0.437500 0.666667
+vt 0.437500 0.750000
+vt 0.437500 0.833333
+vt 0.437500 0.916667
+vt 0.437500 1.000000
+vt 0.437500 0.000000
+vt 0.437500 0.083333
+vt 0.437500 0.166667
+vt 0.437500 0.250000
+vt 0.437500 0.333333
+vt 0.437500 0.416667
+vt 0.458333 0.500000
+vt 0.458333 0.583333
+vt 0.458333 0.666667
+vt 0.458333 0.750000
+vt 0.458333 0.833333
+vt 0.458333 0.916667
+vt 0.458333 1.000000
+vt 0.458333 0.000000
+vt 0.458333 0.083333
+vt 0.458333 0.166667
+vt 0.458333 0.250000
+vt 0.458333 0.333333
+vt 0.458333 0.416667
+vt 0.479167 0.500000
+vt 0.479167 0.583333
+vt 0.479167 0.666667
+vt 0.479167 0.750000
+vt 0.479167 0.833333
+vt 0.479167 0.916667
+vt 0.479167 1.000000
+vt 0.479167 0.000000
+vt 0.479167 0.083333
+vt 0.479167 0.166667
+vt 0.479167 0.250000
+vt 0.479167 0.333333
+vt 0.479167 0.416667
+vn 0.9640 0.2583 -0.0632
+vn 0.7063 0.7063 -0.0463
+vn 0.2588 0.9658 -0.0170
+vn -0.2588 0.9658 0.0170
+vn -0.7063 0.7063 0.0463
+vn -0.9640 0.2583 0.0632
+vn -0.9640 -0.2583 0.0632
+vn -0.7063 -0.7063 0.0463
+vn -0.2588 -0.9658 0.0170
+vn 0.2588 -0.9658 -0.0170
+vn 0.7063 -0.7063 -0.0463
+vn 0.9640 -0.2583 -0.0632
+vn 0.9475 0.2583 -0.1885
+vn 0.6943 0.7063 -0.1381
+vn 0.2544 0.9658 -0.0506
+vn -0.2544 0.9658 0.0506
+vn -0.6943 0.7063 0.1381
+vn -0.9475 0.2583 0.1885
+vn -0.9475 -0.2583 0.1885
+vn -0.6943 -0.7063 0.1381
+vn -0.2544 -0.9658 0.0506
+vn 0.2544 -0.9658 -0.0506
+vn 0.6943 -0.7063 -0.1381
+vn 0.9475 -0.2583 -0.1885
+vn 0.9148 0.2583 -0.3105
+vn 0.6703 0.7063 -0.2275
+vn 0.2456 0.9658 -0.0834
+vn -0.2456 0.9658 0.0834
+vn -0.6703 0.7063 0.2275
+vn -0.9148 0.2583 0.3105
+vn -0.9148 -0.2583 0.3105
+vn -0.6703 -0.7063 0.2275
+vn -0.2456 -0.9658 0.0834
+vn 0.2456 -0.9658 -0.0834
+vn 0.6703 -0.7063 -0.2275
+vn 0.9148 -0.2583 -0.3105
+vn 0.8664 0.2583 -0.4273
+vn 0.6349 0.7063 -0.3131
+vn 0.2326 0.9658 -0.1147
+vn -0.2326 0.9658 0.1147
+vn -0.6349 0.7063 0.3131
+vn -0.8664 0.2583 0.4273
+vn -0.8664 -0.2583 0.4273
+vn -0.6349 -0.7063 0.3131
+vn -0.2326 -0.9658 0.1147
+vn 0.2326 -0.9658 -0.1147
+vn 0.6349 -0.7063 -0.3131
+vn 0.8664 -0.2583 -0.4273
+vn 0.8033 0.2583 -0.5367
+vn 0.5886 0.7063 -0.3933
+vn 0.2156 0.9658 -0.1441
+vn -0.2156 0.9658 0.1441
+vn -0.5886 0.7063 0.3933
+vn -0.8033 0.2583 0.5367
+vn -0.8033 -0.2583 0.5367
+vn -0.5886 -0.7063 0.3933
+vn -0.2156 -0.9658 0.1441
+vn 0.2156 -0.9658 -0.1441
+vn 0.5886 -0.7063 -0.3933
+vn 0.8033 -0.2583 -0.5367
+vn 0.7263 0.2583 -0.6370
+vn 0.5322 0.7063 -0.4667
+vn 0.1950 0.9658 -0.1710
+vn -0.1950 0.9658 0.1710
+vn -0.5322 0.7063 0.4667
+vn -0.7263 0.2583 0.6370
+vn -0.7263 -0.2583 0.6370
+vn -0.5322 -0.7063 0.4667
+vn -0.1950 -0.9658 0.1710
+vn 0.1950 -0.9658 -0.1710
+vn 0.5322 -0.7063 -0.4667
+vn 0.7263 -0.2583 -0.6370
+vn 0.6370 0.2583 -0.7263
+vn 0.4667 0.7063 -0.5322
+vn 0.1710 0.9658 -0.1950
+vn -0.1710 0.9658 0.1950
+vn -0.4667 0.7063 0.5322
+vn -0.6370 0.2583 0.7263
+vn -0.6370 -0.2583 0.7263
+vn -0.4667 -0.7063 0.5322
+vn -0.1710 -0.9658 0.1950
+vn 0.1710 -0.9658 -0.1950
+vn 0.4667 -0.7063 -0.5322
+vn 0.6370 -0.2583 -0.7263
+vn 0.5367 0.2583 -0.8033
+vn 0.3933 0.7063 -0.5886
+vn 0.1441 0.9658 -0.2156
+vn -0.1441 0.9658 0.2156
+vn -0.3933 0.7063 0.5886
+vn -0.5367 0.2583 0.8033
+vn -0.5367 -0.2583 0.8033
+vn -0.3933 -0.7063 0.5886
+vn -0.1441 -0.9658 0.2156
+vn 0.1441 -0.9658 -0.2156
+vn 0.3933 -0.7063 -0.5886
+vn 0.5367 -0.2583 -0.8033
+vn 0.4273 0.2583 -0.8664
+vn 0.3131 0.7063 -0.6349
+vn 0.1147 0.9658 -0.2326
+vn -0.1147 0.9658 0.2326
+vn -0.3131 0.7063 0.6349
+vn -0.4273 0.2583 0.8664
+vn -0.4273 -0.2583 0.8664
+vn -0.3131 -0.7063 0.6349
+vn -0.1147 -0.9658 0.2326
+vn 0.1147 -0.9658 -0.2326
+vn 0.3131 -0.7063 -0.6349
+vn 0.4273 -0.2583 -0.8664
+vn 0.3105 0.2583 -0.9148
+vn 0.2275 0.7063 -0.6703
+vn 0.0834 0.9658 -0.2456
+vn -0.0834 0.9658 0.2456
+vn -0.2275 0.7063 0.6703
+vn -0.3105 0.2583 0.9148
+vn -0.3105 -0.2583 0.9148
+vn -0.2275 -0.7063 0.6703
+vn -0.0834 -0.9658 0.2456
+vn 0.0834 -0.9658 -0.2456
+vn 0.2275 -0.7063 -0.6703
+vn 0.3105 -0.2583 -0.9148
+vn 0.1885 0.2583 -0.9475
+vn 0.1381 0.7063 -0.6943
+vn 0.0506 0.9658 -0.2544
+vn -0.0506 0.9658 0.2544
+vn -0.1381 0.7063 0.6943
+vn -0.1885 0.2583 0.9475
+vn -0.1885 -0.2583 0.9475
+vn -0.1381 -0.7063 0.6943
+vn -0.0506 -0.9658 0.2544
+vn 0.0506 -0.9658 -0.2544
+vn 0.1381 -0.7063 -0.6943
+vn 0.1885 -0.2583 -0.9475
+vn 0.0632 0.2583 -0.9640
+vn 0.0463 0.7063 -0.7063
+vn 0.0170 0.9658 -0.2588
+vn -0.0170 0.9658 0.2588
+vn -0.0463 0.7063 0.7063
+vn -0.0632 0.2583 0.9640
+vn -0.0632 -0.2583 0.9640
+vn -0.0463 -0.7063 0.7063
+vn -0.0170 -0.9658 0.2588
+vn 0.0170 -0.9658 -0.2588
+vn 0.0463 -0.7063 -0.7063
+vn 0.0632 -0.2583 -0.9640
+vn -0.0632 0.2583 -0.9640
+vn -0.0463 0.7063 -0.7063
+vn -0.0170 0.9658 -0.2588
+vn 0.0170 0.9658 0.2588
+vn 0.0463 0.7063 0.7063
+vn 0.0632 0.2583 0.9640
+vn 0.0632 -0.2583 0.9640
+vn 0.0463 -0.7063 0.7063
+vn 0.0170 -0.9658 0.2588
+vn -0.0170 -0.9658 -0.2588
+vn -0.0463 -0.7063 -0.7063
+vn -0.0632 -0.2583 -0.9640
+vn -0.1885 0.2583 -0.9475
+vn -0.1381 0.7063 -0.6943
+vn -0.0506 0.9658 -0.2544
+vn 0.0506 0.9658 0.2544
+vn 0.1381 0.7063 0.6943
+vn 0.1885 0.2583 0.9475
+vn 0.1885 -0.2583 0.9475
+vn 0.1381 -0.7063 0.6943
+vn 0.0506 -0.9658 0.2544
+vn -0.0506 -0.9658 -0.2544
+vn -0.1381 -0.7063 -0.6943
+vn -0.1885 -0.2583 -0.9475
+vn -0.3105 0.2583 -0.9148
+vn -0.2275 0.7063 -0.6703
+vn -0.0834 0.9658 -0.2456
+vn 0.0834 0.9658 0.2456
+vn 0.2275 0.7063 0.6703
+vn 0.3105 0.2583 0.9148
+vn 0.3105 -0.2583 0.9148
+vn 0.2275 -0.7063 0.6703
+vn 0.0834 -0.9658 0.2456
+vn -0.0834 -0.9658 -0.2456
+vn -0.2275 -0.7063 -0.6703
+vn -0.3105 -0.2583 -0.9148
+vn -0.4273 0.2583 -0.8664
+vn -0.3131 0.7063 -0.6349
+vn -0.1147 0.9658 -0.2326
+vn 0.1147 0.9658 0.2326
+vn 0.3131 0.7063 0.6349
+vn 0.4273 0.2583 0.8664
+vn 0.4273 -0.2583 0.8664
+vn 0.3131 -0.7063 0.6349
+vn 0.1147 -0.9658 0.2326
+vn -0.1147 -0.9658 -0.2326
+vn -0.3131 -0.7063 -0.6349
+vn -0.4273 -0.2583 -0.8664
+vn -0.5367 0.2583 -0.8033
+vn -0.3933 0.7063 -0.5886
+vn -0.1441 0.9658 -0.2156
+vn 0.1441 0.9658 0.2156
+vn 0.3933 0.7063 0.5886
+vn 0.5367 0.2583 0.8033
+vn 0.5367 -0.2583 0.8033
+vn 0.3933 -0.7063 0.5886
+vn 0.1441 -0.9658 0.2156
+vn -0.1441 -0.9658 -0.2156
+vn -0.3933 -0.7063 -0.5886
+vn -0.5367 -0.2583 -0.8033
+vn -0.6370 0.2583 -0.7263
+vn -0.4667 0.7063 -0.5322
+vn -0.1710 0.9658 -0.1950
+vn 0.1710 0.9658 0.1950
+vn 0.4667 0.7063 0.5322
+vn 0.6370 0.2583 0.7263
+vn 0.6370 -0.2583 0.7263
+vn 0.4667 -0.7063 0.5322
+vn 0.1710 -0.9658 0.1950
+vn -0.1710 -0.9658 -0.1950
+vn -0.4667 -0.7063 -0.5322
+vn -0.6370 -0.2583 -0.7263
+vn -0.7263 0.2583 -0.6370
+vn -0.5322 0.7063 -0.4667
+vn -0.1950 0.9658 -0.1710
+vn 0.1950 0.9658 0.1710
+vn 0.5322 0.7063 0.4667
+vn 0.7263 0.2583 0.6370
+vn 0.7263 -0.2583 0.6370
+vn 0.5322 -0.7063 0.4667
+vn 0.1950 -0.9658 0.1710
+vn -0.1950 -0.9658 -0.1710
+vn -0.5322 -0.7063 -0.4667
+vn -0.7263 -0.2583 -0.6370
+vn -0.8033 0.2583 -0.5367
+vn -0.5886 0.7063 -0.3933
+vn -0.2156 0.9658 -0.1441
+vn 0.2156 0.9658 0.1441
+vn 0.5886 0.7063 0.3933
+vn 0.8033 0.2583 0.5367
+vn 0.8033 -0.2583 0.5367
+vn 0.5886 -0.7063 0.3933
+vn 0.2156 -0.9658 0.1441
+vn -0.2156 -0.9658 -0.1441
+vn -0.5886 -0.7063 -0.3933
+vn -0.8033 -0.2583 -0.5367
+vn -0.8664 0.2583 -0.4273
+vn -0.6349 0.7063 -0.3131
+vn -0.2326 0.9658 -0.1147
+vn 0.2326 0.9658 0.1147
+vn 0.6349 0.7063 0.3131
+vn 0.8664 0.2583 0.4273
+vn 0.8664 -0.2583 0.4273
+vn 0.6349 -0.7063 0.3131
+vn 0.2326 -0.9658 0.1147
+vn -0.2326 -0.9658 -0.1147
+vn -0.6349 -0.7063 -0.3131
+vn -0.8664 -0.2583 -0.4273
+vn -0.9148 0.2583 -0.3105
+vn -0.6703 0.7063 -0.2275
+vn -0.2456 0.9658 -0.0834
+vn 0.2456 0.9658 0.0834
+vn 0.6703 0.7063 0.2275
+vn 0.9148 0.2583 0.3105
+vn 0.9148 -0.2583 0.3105
+vn 0.6703 -0.7063 0.2275
+vn 0.2456 -0.9658 0.0834
+vn -0.2456 -0.9658 -0.0834
+vn -0.6703 -0.7063 -0.2275
+vn -0.9148 -0.2583 -0.3105
+vn -0.9475 0.2583 -0.1885
+vn -0.6943 0.7063 -0.1381
+vn -0.2544 0.9658 -0.0506
+vn 0.2544 0.9658 0.0506
+vn 0.6943 0.7063 0.1381
+vn 0.9475 0.2583 0.1885
+vn 0.9475 -0.2583 0.1885
+vn 0.6943 -0.7063 0.1381
+vn 0.2544 -0.9658 0.0506
+vn -0.2544 -0.9658 -0.0506
+vn -0.6943 -0.7063 -0.1381
+vn -0.9475 -0.2583 -0.1885
+vn -0.9640 0.2583 -0.0632
+vn -0.7063 0.7063 -0.0463
+vn -0.2588 0.9658 -0.0170
+vn 0.2588 0.9658 0.0170
+vn 0.7063 0.7063 0.0463
+vn 0.9640 0.2583 0.0632
+vn 0.9640 -0.2583 0.0632
+vn 0.7063 -0.7063 0.0463
+vn 0.2588 -0.9658 0.0170
+vn -0.2588 -0.9658 -0.0170
+vn -0.7063 -0.7063 -0.0463
+vn -0.9640 -0.2583 -0.0632
+usemtl Material.004
+s off
+f 1/1/1 13/2/1 14/3/1 2/4/1
+f 2/4/2 14/3/2 15/5/2 3/6/2
+f 3/6/3 15/5/3 16/7/3 4/8/3
+f 4/8/4 16/7/4 17/9/4 5/10/4
+f 5/10/5 17/9/5 18/11/5 6/12/5
+f 6/12/6 18/11/6 19/13/6 7/14/6
+f 7/15/7 19/16/7 20/17/7 8/18/7
+f 8/18/8 20/17/8 21/19/8 9/20/8
+f 9/20/9 21/19/9 22/21/9 10/22/9
+f 10/22/10 22/21/10 23/23/10 11/24/10
+f 11/24/11 23/23/11 24/25/11 12/26/11
+f 12/26/12 24/25/12 13/2/12 1/1/12
+f 13/2/13 25/27/13 26/28/13 14/3/13
+f 14/3/14 26/28/14 27/29/14 15/5/14
+f 15/5/15 27/29/15 28/30/15 16/7/15
+f 16/7/16 28/30/16 29/31/16 17/9/16
+f 17/9/17 29/31/17 30/32/17 18/11/17
+f 18/11/18 30/32/18 31/33/18 19/13/18
+f 19/16/19 31/34/19 32/35/19 20/17/19
+f 20/17/20 32/35/20 33/36/20 21/19/20
+f 21/19/21 33/36/21 34/37/21 22/21/21
+f 22/21/22 34/37/22 35/38/22 23/23/22
+f 23/23/23 35/38/23 36/39/23 24/25/23
+f 24/25/24 36/39/24 25/27/24 13/2/24
+f 25/27/25 37/40/25 38/41/25 26/28/25
+f 26/28/26 38/41/26 39/42/26 27/29/26
+f 27/29/27 39/42/27 40/43/27 28/30/27
+f 28/30/28 40/43/28 41/44/28 29/31/28
+f 29/31/29 41/44/29 42/45/29 30/32/29
+f 30/32/30 42/45/30 43/46/30 31/33/30
+f 31/34/31 43/47/31 44/48/31 32/35/31
+f 32/35/32 44/48/32 45/49/32 33/36/32
+f 33/36/33 45/49/33 46/50/33 34/37/33
+f 34/37/34 46/50/34 47/51/34 35/38/34
+f 35/38/35 47/51/35 48/52/35 36/39/35
+f 36/39/36 48/52/36 37/40/36 25/27/36
+f 37/40/37 49/53/37 50/54/37 38/41/37
+f 38/41/38 50/54/38 51/55/38 39/42/38
+f 39/42/39 51/55/39 52/56/39 40/43/39
+f 40/43/40 52/56/40 53/57/40 41/44/40
+f 41/44/41 53/57/41 54/58/41 42/45/41
+f 42/45/42 54/58/42 55/59/42 43/46/42
+f 43/47/43 55/60/43 56/61/43 44/48/43
+f 44/48/44 56/61/44 57/62/44 45/49/44
+f 45/49/45 57/62/45 58/63/45 46/50/45
+f 46/50/46 58/63/46 59/64/46 47/51/46
+f 47/51/47 59/64/47 60/65/47 48/52/47
+f 48/52/48 60/65/48 49/53/48 37/40/48
+f 49/53/49 61/66/49 62/67/49 50/54/49
+f 50/54/50 62/67/50 63/68/50 51/55/50
+f 51/55/51 63/68/51 64/69/51 52/56/51
+f 52/56/52 64/69/52 65/70/52 53/57/52
+f 53/57/53 65/70/53 66/71/53 54/58/53
+f 54/58/54 66/71/54 67/72/54 55/59/54
+f 55/60/55 67/73/55 68/74/55 56/61/55
+f 56/61/56 68/74/56 69/75/56 57/62/56
+f 57/62/57 69/75/57 70/76/57 58/63/57
+f 58/63/58 70/76/58 71/77/58 59/64/58
+f 59/64/59 71/77/59 72/78/59 60/65/59
+f 60/65/60 72/78/60 61/66/60 49/53/60
+f 61/66/61 73/79/61 74/80/61 62/67/61
+f 62/67/62 74/80/62 75/81/62 63/68/62
+f 63/68/63 75/81/63 76/82/63 64/69/63
+f 64/69/64 76/82/64 77/83/64 65/70/64
+f 65/70/65 77/83/65 78/84/65 66/71/65
+f 66/71/66 78/84/66 79/85/66 67/72/66
+f 67/73/67 79/86/67 80/87/67 68/74/67
+f 68/74/68 80/87/68 81/88/68 69/75/68
+f 69/75/69 81/88/69 82/89/69 70/76/69
+f 70/76/70 82/89/70 83/90/70 71/77/70
+f 71/77/71 83/90/71 84/91/71 72/78/71
+f 72/78/72 84/91/72 73/79/72 61/66/72
+f 73/79/73 85/92/73 86/93/73 74/80/73
+f 74/80/74 86/93/74 87/94/74 75/81/74
+f 75/81/75 87/94/75 88/95/75 76/82/75
+f 76/82/76 88/95/76 89/96/76 77/83/76
+f 77/83/77 89/96/77 90/97/77 78/84/77
+f 78/84/78 90/97/78 91/98/78 79/85/78
+f 79/86/79 91/99/79 92/100/79 80/87/79
+f 80/87/80 92/100/80 93/101/80 81/88/80
+f 81/88/81 93/101/81 94/102/81 82/89/81
+f 82/89/82 94/102/82 95/103/82 83/90/82
+f 83/90/83 95/103/83 96/104/83 84/91/83
+f 84/91/84 96/104/84 85/92/84 73/79/84
+f 85/92/85 97/105/85 98/106/85 86/93/85
+f 86/93/86 98/106/86 99/107/86 87/94/86
+f 87/94/87 99/107/87 100/108/87 88/95/87
+f 88/95/88 100/108/88 101/109/88 89/96/88
+f 89/96/89 101/109/89 102/110/89 90/97/89
+f 90/97/90 102/110/90 103/111/90 91/98/90
+f 91/99/91 103/112/91 104/113/91 92/100/91
+f 92/100/92 104/113/92 105/114/92 93/101/92
+f 93/101/93 105/114/93 106/115/93 94/102/93
+f 94/102/94 106/115/94 107/116/94 95/103/94
+f 95/103/95 107/116/95 108/117/95 96/104/95
+f 96/104/96 108/117/96 97/105/96 85/92/96
+f 97/105/97 109/118/97 110/119/97 98/106/97
+f 98/106/98 110/119/98 111/120/98 99/107/98
+f 99/107/99 111/120/99 112/121/99 100/108/99
+f 100/108/100 112/121/100 113/122/100 101/109/100
+f 101/109/101 113/122/101 114/123/101 102/110/101
+f 102/110/102 114/123/102 115/124/102 103/111/102
+f 103/112/103 115/125/103 116/126/103 104/113/103
+f 104/113/104 116/126/104 117/127/104 105/114/104
+f 105/114/105 117/127/105 118/128/105 106/115/105
+f 106/115/106 118/128/106 119/129/106 107/116/106
+f 107/116/107 119/129/107 120/130/107 108/117/107
+f 108/117/108 120/130/108 109/118/108 97/105/108
+f 109/118/109 121/131/109 122/132/109 110/119/109
+f 110/119/110 122/132/110 123/133/110 111/120/110
+f 111/120/111 123/133/111 124/134/111 112/121/111
+f 112/121/112 124/134/112 125/135/112 113/122/112
+f 113/122/113 125/135/113 126/136/113 114/123/113
+f 114/123/114 126/136/114 127/137/114 115/124/114
+f 115/125/115 127/138/115 128/139/115 116/126/115
+f 116/126/116 128/139/116 129/140/116 117/127/116
+f 117/127/117 129/140/117 130/141/117 118/128/117
+f 118/128/118 130/141/118 131/142/118 119/129/118
+f 119/129/119 131/142/119 132/143/119 120/130/119
+f 120/130/120 132/143/120 121/131/120 109/118/120
+f 121/131/121 133/144/121 134/145/121 122/132/121
+f 122/132/122 134/145/122 135/146/122 123/133/122
+f 123/133/123 135/146/123 136/147/123 124/134/123
+f 124/134/124 136/147/124 137/148/124 125/135/124
+f 125/135/125 137/148/125 138/149/125 126/136/125
+f 126/136/126 138/149/126 139/150/126 127/137/126
+f 127/138/127 139/151/127 140/152/127 128/139/127
+f 128/139/128 140/152/128 141/153/128 129/140/128
+f 129/140/129 141/153/129 142/154/129 130/141/129
+f 130/141/130 142/154/130 143/155/130 131/142/130
+f 131/142/131 143/155/131 144/156/131 132/143/131
+f 132/143/132 144/156/132 133/144/132 121/131/132
+f 133/144/133 145/157/133 146/158/133 134/145/133
+f 134/145/134 146/158/134 147/159/134 135/146/134
+f 135/146/135 147/159/135 148/160/135 136/147/135
+f 136/147/136 148/160/136 149/161/136 137/148/136
+f 137/148/137 149/161/137 150/162/137 138/149/137
+f 138/149/138 150/162/138 151/163/138 139/150/138
+f 139/151/139 151/164/139 152/165/139 140/152/139
+f 140/152/140 152/165/140 153/166/140 141/153/140
+f 141/153/141 153/166/141 154/167/141 142/154/141
+f 142/154/142 154/167/142 155/168/142 143/155/142
+f 143/155/143 155/168/143 156/169/143 144/156/143
+f 144/156/144 156/169/144 145/157/144 133/144/144
+f 145/157/145 157/170/145 158/171/145 146/158/145
+f 146/158/146 158/171/146 159/172/146 147/159/146
+f 147/159/147 159/172/147 160/173/147 148/160/147
+f 148/160/148 160/173/148 161/174/148 149/161/148
+f 149/161/149 161/174/149 162/175/149 150/162/149
+f 150/162/150 162/175/150 163/176/150 151/163/150
+f 151/164/151 163/177/151 164/178/151 152/165/151
+f 152/165/152 164/178/152 165/179/152 153/166/152
+f 153/166/153 165/179/153 166/180/153 154/167/153
+f 154/167/154 166/180/154 167/181/154 155/168/154
+f 155/168/155 167/181/155 168/182/155 156/169/155
+f 156/169/156 168/182/156 157/170/156 145/157/156
+f 157/170/157 169/183/157 170/184/157 158/171/157
+f 158/171/158 170/184/158 171/185/158 159/172/158
+f 159/172/159 171/185/159 172/186/159 160/173/159
+f 160/173/160 172/186/160 173/187/160 161/174/160
+f 161/174/161 173/187/161 174/188/161 162/175/161
+f 162/175/162 174/188/162 175/189/162 163/176/162
+f 163/177/163 175/190/163 176/191/163 164/178/163
+f 164/178/164 176/191/164 177/192/164 165/179/164
+f 165/179/165 177/192/165 178/193/165 166/180/165
+f 166/180/166 178/193/166 179/194/166 167/181/166
+f 167/181/167 179/194/167 180/195/167 168/182/167
+f 168/182/168 180/195/168 169/183/168 157/170/168
+f 169/183/169 181/196/169 182/197/169 170/184/169
+f 170/184/170 182/197/170 183/198/170 171/185/170
+f 171/185/171 183/198/171 184/199/171 172/186/171
+f 172/186/172 184/199/172 185/200/172 173/187/172
+f 173/187/173 185/200/173 186/201/173 174/188/173
+f 174/188/174 186/201/174 187/202/174 175/189/174
+f 175/190/175 187/203/175 188/204/175 176/191/175
+f 176/191/176 188/204/176 189/205/176 177/192/176
+f 177/192/177 189/205/177 190/206/177 178/193/177
+f 178/193/178 190/206/178 191/207/178 179/194/178
+f 179/194/179 191/207/179 192/208/179 180/195/179
+f 180/195/180 192/208/180 181/196/180 169/183/180
+f 181/196/181 193/209/181 194/210/181 182/197/181
+f 182/197/182 194/210/182 195/211/182 183/198/182
+f 183/198/183 195/211/183 196/212/183 184/199/183
+f 184/199/184 196/212/184 197/213/184 185/200/184
+f 185/200/185 197/213/185 198/214/185 186/201/185
+f 186/201/186 198/214/186 199/215/186 187/202/186
+f 187/203/187 199/216/187 200/217/187 188/204/187
+f 188/204/188 200/217/188 201/218/188 189/205/188
+f 189/205/189 201/218/189 202/219/189 190/206/189
+f 190/206/190 202/219/190 203/220/190 191/207/190
+f 191/207/191 203/220/191 204/221/191 192/208/191
+f 192/208/192 204/221/192 193/209/192 181/196/192
+f 193/209/193 205/222/193 206/223/193 194/210/193
+f 194/210/194 206/223/194 207/224/194 195/211/194
+f 195/211/195 207/224/195 208/225/195 196/212/195
+f 196/212/196 208/225/196 209/226/196 197/213/196
+f 197/213/197 209/226/197 210/227/197 198/214/197
+f 198/214/198 210/227/198 211/228/198 199/215/198
+f 199/216/199 211/229/199 212/230/199 200/217/199
+f 200/217/200 212/230/200 213/231/200 201/218/200
+f 201/218/201 213/231/201 214/232/201 202/219/201
+f 202/219/202 214/232/202 215/233/202 203/220/202
+f 203/220/203 215/233/203 216/234/203 204/221/203
+f 204/221/204 216/234/204 205/222/204 193/209/204
+f 205/222/205 217/235/205 218/236/205 206/223/205
+f 206/223/206 218/236/206 219/237/206 207/224/206
+f 207/224/207 219/237/207 220/238/207 208/225/207
+f 208/225/208 220/238/208 221/239/208 209/226/208
+f 209/226/209 221/239/209 222/240/209 210/227/209
+f 210/227/210 222/240/210 223/241/210 211/228/210
+f 211/229/211 223/242/211 224/243/211 212/230/211
+f 212/230/212 224/243/212 225/244/212 213/231/212
+f 213/231/213 225/244/213 226/245/213 214/232/213
+f 214/232/214 226/245/214 227/246/214 215/233/214
+f 215/233/215 227/246/215 228/247/215 216/234/215
+f 216/234/216 228/247/216 217/235/216 205/222/216
+f 217/235/217 229/248/217 230/249/217 218/236/217
+f 218/236/218 230/249/218 231/250/218 219/237/218
+f 219/237/219 231/250/219 232/251/219 220/238/219
+f 220/238/220 232/251/220 233/252/220 221/239/220
+f 221/239/221 233/252/221 234/253/221 222/240/221
+f 222/240/222 234/253/222 235/254/222 223/241/222
+f 223/242/223 235/255/223 236/256/223 224/243/223
+f 224/243/224 236/256/224 237/257/224 225/244/224
+f 225/244/225 237/257/225 238/258/225 226/245/225
+f 226/245/226 238/258/226 239/259/226 227/246/226
+f 227/246/227 239/259/227 240/260/227 228/247/227
+f 228/247/228 240/260/228 229/248/228 217/235/228
+f 229/248/229 241/261/229 242/262/229 230/249/229
+f 230/249/230 242/262/230 243/263/230 231/250/230
+f 231/250/231 243/263/231 244/264/231 232/251/231
+f 232/251/232 244/264/232 245/265/232 233/252/232
+f 233/252/233 245/265/233 246/266/233 234/253/233
+f 234/253/234 246/266/234 247/267/234 235/254/234
+f 235/255/235 247/268/235 248/269/235 236/256/235
+f 236/256/236 248/269/236 249/270/236 237/257/236
+f 237/257/237 249/270/237 250/271/237 238/258/237
+f 238/258/238 250/271/238 251/272/238 239/259/238
+f 239/259/239 251/272/239 252/273/239 240/260/239
+f 240/260/240 252/273/240 241/261/240 229/248/240
+f 241/261/241 253/274/241 254/275/241 242/262/241
+f 242/262/242 254/275/242 255/276/242 243/263/242
+f 243/263/243 255/276/243 256/277/243 244/264/243
+f 244/264/244 256/277/244 257/278/244 245/265/244
+f 245/265/245 257/278/245 258/279/245 246/266/245
+f 246/266/246 258/279/246 259/280/246 247/267/246
+f 247/268/247 259/281/247 260/282/247 248/269/247
+f 248/269/248 260/282/248 261/283/248 249/270/248
+f 249/270/249 261/283/249 262/284/249 250/271/249
+f 250/271/250 262/284/250 263/285/250 251/272/250
+f 251/272/251 263/285/251 264/286/251 252/273/251
+f 252/273/252 264/286/252 253/274/252 241/261/252
+f 253/274/253 265/287/253 266/288/253 254/275/253
+f 254/275/254 266/288/254 267/289/254 255/276/254
+f 255/276/255 267/289/255 268/290/255 256/277/255
+f 256/277/256 268/290/256 269/291/256 257/278/256
+f 257/278/257 269/291/257 270/292/257 258/279/257
+f 258/279/258 270/292/258 271/293/258 259/280/258
+f 259/281/259 271/294/259 272/295/259 260/282/259
+f 260/282/260 272/295/260 273/296/260 261/283/260
+f 261/283/261 273/296/261 274/297/261 262/284/261
+f 262/284/262 274/297/262 275/298/262 263/285/262
+f 263/285/263 275/298/263 276/299/263 264/286/263
+f 264/286/264 276/299/264 265/287/264 253/274/264
+f 265/287/265 277/300/265 278/301/265 266/288/265
+f 266/288/266 278/301/266 279/302/266 267/289/266
+f 267/289/267 279/302/267 280/303/267 268/290/267
+f 268/290/268 280/303/268 281/304/268 269/291/268
+f 269/291/269 281/304/269 282/305/269 270/292/269
+f 270/292/270 282/305/270 283/306/270 271/293/270
+f 271/294/271 283/307/271 284/308/271 272/295/271
+f 272/295/272 284/308/272 285/309/272 273/296/272
+f 273/296/273 285/309/273 286/310/273 274/297/273
+f 274/297/274 286/310/274 287/311/274 275/298/274
+f 275/298/275 287/311/275 288/312/275 276/299/275
+f 276/299/276 288/312/276 277/300/276 265/287/276
+f 277/300/277 289/313/277 290/314/277 278/301/277
+f 278/301/278 290/314/278 291/315/278 279/302/278
+f 279/302/279 291/315/279 292/316/279 280/303/279
+f 280/303/280 292/316/280 293/317/280 281/304/280
+f 281/304/281 293/317/281 294/318/281 282/305/281
+f 282/305/282 294/318/282 295/319/282 283/306/282
+f 283/307/283 295/320/283 296/321/283 284/308/283
+f 284/308/284 296/321/284 297/322/284 285/309/284
+f 285/309/285 297/322/285 298/323/285 286/310/285
+f 286/310/286 298/323/286 299/324/286 287/311/286
+f 287/311/287 299/324/287 300/325/287 288/312/287
+f 288/312/288 300/325/288 289/313/288 277/300/288
+f 289/326/6 301/327/6 302/328/6 290/329/6
+f 290/329/5 302/328/5 303/330/5 291/331/5
+f 291/331/4 303/330/4 304/332/4 292/333/4
+f 292/333/3 304/332/3 305/334/3 293/335/3
+f 293/335/2 305/334/2 306/336/2 294/337/2
+f 294/337/1 306/336/1 307/338/1 295/339/1
+f 295/340/12 307/341/12 308/342/12 296/343/12
+f 296/343/11 308/342/11 309/344/11 297/345/11
+f 297/345/10 309/344/10 310/346/10 298/347/10
+f 298/347/9 310/346/9 311/348/9 299/349/9
+f 299/349/8 311/348/8 312/350/8 300/351/8
+f 300/351/7 312/350/7 301/327/7 289/326/7
+f 301/327/18 313/352/18 314/353/18 302/328/18
+f 302/328/17 314/353/17 315/354/17 303/330/17
+f 303/330/16 315/354/16 316/355/16 304/332/16
+f 304/332/15 316/355/15 317/356/15 305/334/15
+f 305/334/14 317/356/14 318/357/14 306/336/14
+f 306/336/13 318/357/13 319/358/13 307/338/13
+f 307/341/24 319/359/24 320/360/24 308/342/24
+f 308/342/23 320/360/23 321/361/23 309/344/23
+f 309/344/22 321/361/22 322/362/22 310/346/22
+f 310/346/21 322/362/21 323/363/21 311/348/21
+f 311/348/20 323/363/20 324/364/20 312/350/20
+f 312/350/19 324/364/19 313/352/19 301/327/19
+f 313/352/30 325/365/30 326/366/30 314/353/30
+f 314/353/29 326/366/29 327/367/29 315/354/29
+f 315/354/28 327/367/28 328/368/28 316/355/28
+f 316/355/27 328/368/27 329/369/27 317/356/27
+f 317/356/26 329/369/26 330/370/26 318/357/26
+f 318/357/25 330/370/25 331/371/25 319/358/25
+f 319/359/36 331/372/36 332/373/36 320/360/36
+f 320/360/35 332/373/35 333/374/35 321/361/35
+f 321/361/34 333/374/34 334/375/34 322/362/34
+f 322/362/33 334/375/33 335/376/33 323/363/33
+f 323/363/32 335/376/32 336/377/32 324/364/32
+f 324/364/31 336/377/31 325/365/31 313/352/31
+f 325/365/42 337/378/42 338/379/42 326/366/42
+f 326/366/41 338/379/41 339/380/41 327/367/41
+f 327/367/40 339/380/40 340/381/40 328/368/40
+f 328/368/39 340/381/39 341/382/39 329/369/39
+f 329/369/38 341/382/38 342/383/38 330/370/38
+f 330/370/37 342/383/37 343/384/37 331/371/37
+f 331/372/48 343/385/48 344/386/48 332/373/48
+f 332/373/47 344/386/47 345/387/47 333/374/47
+f 333/374/46 345/387/46 346/388/46 334/375/46
+f 334/375/45 346/388/45 347/389/45 335/376/45
+f 335/376/44 347/389/44 348/390/44 336/377/44
+f 336/377/43 348/390/43 337/378/43 325/365/43
+f 337/378/54 349/391/54 350/392/54 338/379/54
+f 338/379/53 350/392/53 351/393/53 339/380/53
+f 339/380/52 351/393/52 352/394/52 340/381/52
+f 340/381/51 352/394/51 353/395/51 341/382/51
+f 341/382/50 353/395/50 354/396/50 342/383/50
+f 342/383/49 354/396/49 355/397/49 343/384/49
+f 343/385/60 355/398/60 356/399/60 344/386/60
+f 344/386/59 356/399/59 357/400/59 345/387/59
+f 345/387/58 357/400/58 358/401/58 346/388/58
+f 346/388/57 358/401/57 359/402/57 347/389/57
+f 347/389/56 359/402/56 360/403/56 348/390/56
+f 348/390/55 360/403/55 349/391/55 337/378/55
+f 349/391/66 361/404/66 362/405/66 350/392/66
+f 350/392/65 362/405/65 363/406/65 351/393/65
+f 351/393/64 363/406/64 364/407/64 352/394/64
+f 352/394/63 364/407/63 365/408/63 353/395/63
+f 353/395/62 365/408/62 366/409/62 354/396/62
+f 354/396/61 366/409/61 367/410/61 355/397/61
+f 355/398/72 367/411/72 368/412/72 356/399/72
+f 356/399/71 368/412/71 369/413/71 357/400/71
+f 357/400/70 369/413/70 370/414/70 358/401/70
+f 358/401/69 370/414/69 371/415/69 359/402/69
+f 359/402/68 371/415/68 372/416/68 360/403/68
+f 360/403/67 372/416/67 361/404/67 349/391/67
+f 361/404/78 373/417/78 374/418/78 362/405/78
+f 362/405/77 374/418/77 375/419/77 363/406/77
+f 363/406/76 375/419/76 376/420/76 364/407/76
+f 364/407/75 376/420/75 377/421/75 365/408/75
+f 365/408/74 377/421/74 378/422/74 366/409/74
+f 366/409/73 378/422/73 379/423/73 367/410/73
+f 367/411/84 379/424/84 380/425/84 368/412/84
+f 368/412/83 380/425/83 381/426/83 369/413/83
+f 369/413/82 381/426/82 382/427/82 370/414/82
+f 370/414/81 382/427/81 383/428/81 371/415/81
+f 371/415/80 383/428/80 384/429/80 372/416/80
+f 372/416/79 384/429/79 373/417/79 361/404/79
+f 373/417/90 385/430/90 386/431/90 374/418/90
+f 374/418/89 386/431/89 387/432/89 375/419/89
+f 375/419/88 387/432/88 388/433/88 376/420/88
+f 376/420/87 388/433/87 389/434/87 377/421/87
+f 377/421/86 389/434/86 390/435/86 378/422/86
+f 378/422/85 390/435/85 391/436/85 379/423/85
+f 379/424/96 391/437/96 392/438/96 380/425/96
+f 380/425/95 392/438/95 393/439/95 381/426/95
+f 381/426/94 393/439/94 394/440/94 382/427/94
+f 382/427/93 394/440/93 395/441/93 383/428/93
+f 383/428/92 395/441/92 396/442/92 384/429/92
+f 384/429/91 396/442/91 385/430/91 373/417/91
+f 385/430/102 397/443/102 398/444/102 386/431/102
+f 386/431/101 398/444/101 399/445/101 387/432/101
+f 387/432/100 399/445/100 400/446/100 388/433/100
+f 388/433/99 400/446/99 401/447/99 389/434/99
+f 389/434/98 401/447/98 402/448/98 390/435/98
+f 390/435/97 402/448/97 403/449/97 391/436/97
+f 391/437/108 403/450/108 404/451/108 392/438/108
+f 392/438/107 404/451/107 405/452/107 393/439/107
+f 393/439/106 405/452/106 406/453/106 394/440/106
+f 394/440/105 406/453/105 407/454/105 395/441/105
+f 395/441/104 407/454/104 408/455/104 396/442/104
+f 396/442/103 408/455/103 397/443/103 385/430/103
+f 397/443/114 409/456/114 410/457/114 398/444/114
+f 398/444/113 410/457/113 411/458/113 399/445/113
+f 399/445/112 411/458/112 412/459/112 400/446/112
+f 400/446/111 412/459/111 413/460/111 401/447/111
+f 401/447/110 413/460/110 414/461/110 402/448/110
+f 402/448/109 414/461/109 415/462/109 403/449/109
+f 403/450/120 415/463/120 416/464/120 404/451/120
+f 404/451/119 416/464/119 417/465/119 405/452/119
+f 405/452/118 417/465/118 418/466/118 406/453/118
+f 406/453/117 418/466/117 419/467/117 407/454/117
+f 407/454/116 419/467/116 420/468/116 408/455/116
+f 408/455/115 420/468/115 409/456/115 397/443/115
+f 409/456/126 421/469/126 422/470/126 410/457/126
+f 410/457/125 422/470/125 423/471/125 411/458/125
+f 411/458/124 423/471/124 424/472/124 412/459/124
+f 412/459/123 424/472/123 425/473/123 413/460/123
+f 413/460/122 425/473/122 426/474/122 414/461/122
+f 414/461/121 426/474/121 427/475/121 415/462/121
+f 415/463/132 427/476/132 428/477/132 416/464/132
+f 416/464/131 428/477/131 429/478/131 417/465/131
+f 417/465/130 429/478/130 430/479/130 418/466/130
+f 418/466/129 430/479/129 431/480/129 419/467/129
+f 419/467/128 431/480/128 432/481/128 420/468/128
+f 420/468/127 432/481/127 421/469/127 409/456/127
+f 421/469/138 433/482/138 434/483/138 422/470/138
+f 422/470/137 434/483/137 435/484/137 423/471/137
+f 423/471/136 435/484/136 436/485/136 424/472/136
+f 424/472/135 436/485/135 437/486/135 425/473/135
+f 425/473/134 437/486/134 438/487/134 426/474/134
+f 426/474/133 438/487/133 439/488/133 427/475/133
+f 427/476/144 439/489/144 440/490/144 428/477/144
+f 428/477/143 440/490/143 441/491/143 429/478/143
+f 429/478/142 441/491/142 442/492/142 430/479/142
+f 430/479/141 442/492/141 443/493/141 431/480/141
+f 431/480/140 443/493/140 444/494/140 432/481/140
+f 432/481/139 444/494/139 433/482/139 421/469/139
+f 433/482/150 445/495/150 446/496/150 434/483/150
+f 434/483/149 446/496/149 447/497/149 435/484/149
+f 435/484/148 447/497/148 448/498/148 436/485/148
+f 436/485/147 448/498/147 449/499/147 437/486/147
+f 437/486/146 449/499/146 450/500/146 438/487/146
+f 438/487/145 450/500/145 451/501/145 439/488/145
+f 439/489/156 451/502/156 452/503/156 440/490/156
+f 440/490/155 452/503/155 453/504/155 441/491/155
+f 441/491/154 453/504/154 454/505/154 442/492/154
+f 442/492/153 454/505/153 455/506/153 443/493/153
+f 443/493/152 455/506/152 456/507/152 444/494/152
+f 444/494/151 456/507/151 445/495/151 433/482/151
+f 445/495/162 457/508/162 458/509/162 446/496/162
+f 446/496/161 458/509/161 459/510/161 447/497/161
+f 447/497/160 459/510/160 460/511/160 448/498/160
+f 448/498/159 460/511/159 461/512/159 449/499/159
+f 449/499/158 461/512/158 462/513/158 450/500/158
+f 450/500/157 462/513/157 463/514/157 451/501/157
+f 451/502/168 463/515/168 464/516/168 452/503/168
+f 452/503/167 464/516/167 465/517/167 453/504/167
+f 453/504/166 465/517/166 466/518/166 454/505/166
+f 454/505/165 466/518/165 467/519/165 455/506/165
+f 455/506/164 467/519/164 468/520/164 456/507/164
+f 456/507/163 468/520/163 457/508/163 445/495/163
+f 457/508/174 469/521/174 470/522/174 458/509/174
+f 458/509/173 470/522/173 471/523/173 459/510/173
+f 459/510/172 471/523/172 472/524/172 460/511/172
+f 460/511/171 472/524/171 473/525/171 461/512/171
+f 461/512/170 473/525/170 474/526/170 462/513/170
+f 462/513/169 474/526/169 475/527/169 463/514/169
+f 463/515/180 475/528/180 476/529/180 464/516/180
+f 464/516/179 476/529/179 477/530/179 465/517/179
+f 465/517/178 477/530/178 478/531/178 466/518/178
+f 466/518/177 478/531/177 479/532/177 467/519/177
+f 467/519/176 479/532/176 480/533/176 468/520/176
+f 468/520/175 480/533/175 469/521/175 457/508/175
+f 469/521/186 481/534/186 482/535/186 470/522/186
+f 470/522/185 482/535/185 483/536/185 471/523/185
+f 471/523/184 483/536/184 484/537/184 472/524/184
+f 472/524/183 484/537/183 485/538/183 473/525/183
+f 473/525/182 485/538/182 486/539/182 474/526/182
+f 474/526/181 486/539/181 487/540/181 475/527/181
+f 475/528/192 487/541/192 488/542/192 476/529/192
+f 476/529/191 488/542/191 489/543/191 477/530/191
+f 477/530/190 489/543/190 490/544/190 478/531/190
+f 478/531/189 490/544/189 491/545/189 479/532/189
+f 479/532/188 491/545/188 492/546/188 480/533/188
+f 480/533/187 492/546/187 481/534/187 469/521/187
+f 481/534/198 493/547/198 494/548/198 482/535/198
+f 482/535/197 494/548/197 495/549/197 483/536/197
+f 483/536/196 495/549/196 496/550/196 484/537/196
+f 484/537/195 496/550/195 497/551/195 485/538/195
+f 485/538/194 497/551/194 498/552/194 486/539/194
+f 486/539/193 498/552/193 499/553/193 487/540/193
+f 487/541/204 499/554/204 500/555/204 488/542/204
+f 488/542/203 500/555/203 501/556/203 489/543/203
+f 489/543/202 501/556/202 502/557/202 490/544/202
+f 490/544/201 502/557/201 503/558/201 491/545/201
+f 491/545/200 503/558/200 504/559/200 492/546/200
+f 492/546/199 504/559/199 493/547/199 481/534/199
+f 493/547/210 505/560/210 506/561/210 494/548/210
+f 494/548/209 506/561/209 507/562/209 495/549/209
+f 495/549/208 507/562/208 508/563/208 496/550/208
+f 496/550/207 508/563/207 509/564/207 497/551/207
+f 497/551/206 509/564/206 510/565/206 498/552/206
+f 498/552/205 510/565/205 511/566/205 499/553/205
+f 499/554/216 511/567/216 512/568/216 500/555/216
+f 500/555/215 512/568/215 513/569/215 501/556/215
+f 501/556/214 513/569/214 514/570/214 502/557/214
+f 502/557/213 514/570/213 515/571/213 503/558/213
+f 503/558/212 515/571/212 516/572/212 504/559/212
+f 504/559/211 516/572/211 505/560/211 493/547/211
+f 505/560/222 517/573/222 518/574/222 506/561/222
+f 506/561/221 518/574/221 519/575/221 507/562/221
+f 507/562/220 519/575/220 520/576/220 508/563/220
+f 508/563/219 520/576/219 521/577/219 509/564/219
+f 509/564/218 521/577/218 522/578/218 510/565/218
+f 510/565/217 522/578/217 523/579/217 511/566/217
+f 511/567/228 523/580/228 524/581/228 512/568/228
+f 512/568/227 524/581/227 525/582/227 513/569/227
+f 513/569/226 525/582/226 526/583/226 514/570/226
+f 514/570/225 526/583/225 527/584/225 515/571/225
+f 515/571/224 527/584/224 528/585/224 516/572/224
+f 516/572/223 528/585/223 517/573/223 505/560/223
+f 517/573/234 529/586/234 530/587/234 518/574/234
+f 518/574/233 530/587/233 531/588/233 519/575/233
+f 519/575/232 531/588/232 532/589/232 520/576/232
+f 520/576/231 532/589/231 533/590/231 521/577/231
+f 521/577/230 533/590/230 534/591/230 522/578/230
+f 522/578/229 534/591/229 535/592/229 523/579/229
+f 523/580/240 535/593/240 536/594/240 524/581/240
+f 524/581/239 536/594/239 537/595/239 525/582/239
+f 525/582/238 537/595/238 538/596/238 526/583/238
+f 526/583/237 538/596/237 539/597/237 527/584/237
+f 527/584/236 539/597/236 540/598/236 528/585/236
+f 528/585/235 540/598/235 529/586/235 517/573/235
+f 529/586/246 541/599/246 542/600/246 530/587/246
+f 530/587/245 542/600/245 543/601/245 531/588/245
+f 531/588/244 543/601/244 544/602/244 532/589/244
+f 532/589/243 544/602/243 545/603/243 533/590/243
+f 533/590/242 545/603/242 546/604/242 534/591/242
+f 534/591/241 546/604/241 547/605/241 535/592/241
+f 535/593/252 547/606/252 548/607/252 536/594/252
+f 536/594/251 548/607/251 549/608/251 537/595/251
+f 537/595/250 549/608/250 550/609/250 538/596/250
+f 538/596/249 550/609/249 551/610/249 539/597/249
+f 539/597/248 551/610/248 552/611/248 540/598/248
+f 540/598/247 552/611/247 541/599/247 529/586/247
+f 541/599/258 553/612/258 554/613/258 542/600/258
+f 542/600/257 554/613/257 555/614/257 543/601/257
+f 543/601/256 555/614/256 556/615/256 544/602/256
+f 544/602/255 556/615/255 557/616/255 545/603/255
+f 545/603/254 557/616/254 558/617/254 546/604/254
+f 546/604/253 558/617/253 559/618/253 547/605/253
+f 547/606/264 559/619/264 560/620/264 548/607/264
+f 548/607/263 560/620/263 561/621/263 549/608/263
+f 549/608/262 561/621/262 562/622/262 550/609/262
+f 550/609/261 562/622/261 563/623/261 551/610/261
+f 551/610/260 563/623/260 564/624/260 552/611/260
+f 552/611/259 564/624/259 553/612/259 541/599/259
+f 553/612/270 565/625/270 566/626/270 554/613/270
+f 554/613/269 566/626/269 567/627/269 555/614/269
+f 555/614/268 567/627/268 568/628/268 556/615/268
+f 556/615/267 568/628/267 569/629/267 557/616/267
+f 557/616/266 569/629/266 570/630/266 558/617/266
+f 558/617/265 570/630/265 571/631/265 559/618/265
+f 559/619/276 571/632/276 572/633/276 560/620/276
+f 560/620/275 572/633/275 573/634/275 561/621/275
+f 561/621/274 573/634/274 574/635/274 562/622/274
+f 562/622/273 574/635/273 575/636/273 563/623/273
+f 563/623/272 575/636/272 576/637/272 564/624/272
+f 564/624/271 576/637/271 565/625/271 553/612/271
+f 565/625/282 1/1/282 2/4/282 566/626/282
+f 566/626/281 2/4/281 3/6/281 567/627/281
+f 567/627/280 3/6/280 4/8/280 568/628/280
+f 568/628/279 4/8/279 5/10/279 569/629/279
+f 569/629/278 5/10/278 6/12/278 570/630/278
+f 570/630/277 6/12/277 7/14/277 571/631/277
+f 571/632/288 7/15/288 8/18/288 572/633/288
+f 572/633/287 8/18/287 9/20/287 573/634/287
+f 573/634/286 9/20/286 10/22/286 574/635/286
+f 574/635/285 10/22/285 11/24/285 575/636/285
+f 575/636/284 11/24/284 12/26/284 576/637/284
+f 576/637/283 12/26/283 1/1/283 565/625/283
diff --git a/assets/shaders/basicColor.json b/assets/shaders/basicColor.json
new file mode 100644
index 0000000..fd2dc40
--- /dev/null
+++ b/assets/shaders/basicColor.json
@@ -0,0 +1,5 @@
+{
+ "name":"basicColor",
+ "vert":"basicColor/basicColor.vert",
+ "frag":"basicColor/basicColor.frag"
+}
\ No newline at end of file
diff --git a/assets/shaders/basicColor/basicColor.frag b/assets/shaders/basicColor/basicColor.frag
new file mode 100644
index 0000000..75b7c1a
--- /dev/null
+++ b/assets/shaders/basicColor/basicColor.frag
@@ -0,0 +1,16 @@
+#version 330 core
+// The result : color of the fragment.
+out vec4 FragColor;
+
+
+// The input variable from the vertex shader (same name and same type).
+in vec3 color;
+uniform float intensity;
+uniform vec4 colorDiffuse0; // Input Color.
+
+void main() {
+
+ vec3 ambient = vec3(0.7333, 0.7333, 0.7333);
+ vec3 diffuse = color;
+ FragColor = intensity * vec4(ambient + diffuse, 1.0)*colorDiffuse0;
+}
\ No newline at end of file
diff --git a/assets/shaders/basicColor/basicColor.vert b/assets/shaders/basicColor/basicColor.vert
new file mode 100644
index 0000000..528df63
--- /dev/null
+++ b/assets/shaders/basicColor/basicColor.vert
@@ -0,0 +1,30 @@
+#version 330 core
+// Input : vertex attributes.
+layout (location = 0) in vec3 aPos; // Position of the vertex.
+layout (location = 1) in vec3 aNormal; // Normal of the vertex.
+layout (location = 2) in vec2 aTexCoords; // Texture coordonate of the vertex.
+layout (location = 3) in vec3 aTangent; // Texture coordonate of the vertex.
+layout (location = 4) in vec3 aBitangent; // Texture coordonate of the vertex.
+
+// The result : color of the fragment.
+out vec3 color;
+
+// Uniform input variable.
+uniform mat4 projection; // Projection of the camera.
+uniform mat4 model; // Transforms transformation.
+uniform mat4 view; // View transformation of the camera.
+uniform vec3 lightPos;
+
+void main() {
+
+ gl_Position = projection * view * model * vec4(aPos, 1.0);
+ vec4 newPos = model * vec4(aPos, 1.0);
+ // vec4 newNormal = model * vec4(aNormal, 1.0);
+ vec3 newPos3 = newPos.xyz;
+ // vec3 newNormal3 = newNormal.xyz;
+ vec3 newNormal3 = mat3(transpose(inverse(model))) * aNormal;
+ vec3 lightVec = vec3(normalize((lightPos - newPos3)));
+ float diffuse = dot(lightVec, newNormal3);
+ //color = vec3(1,1,1);
+ color = vec3(diffuse);
+}
\ No newline at end of file
diff --git a/assets/shaders/basicColor2.json b/assets/shaders/basicColor2.json
new file mode 100644
index 0000000..39b6cd2
--- /dev/null
+++ b/assets/shaders/basicColor2.json
@@ -0,0 +1,5 @@
+{
+ "name":"basicColor2",
+ "vert":"basicColor2/basicColor2.vert",
+ "frag":"basicColor2/basicColor2.frag"
+}
\ No newline at end of file
diff --git a/assets/shaders/basicColor2/basicColor2.frag b/assets/shaders/basicColor2/basicColor2.frag
new file mode 100644
index 0000000..775c464
--- /dev/null
+++ b/assets/shaders/basicColor2/basicColor2.frag
@@ -0,0 +1,17 @@
+#version 330 core
+// The result : color of the fragment.
+out vec4 FragColor;
+
+
+// The input variable from the vertex shader (same name and same type).
+in vec3 color;
+in vec2 TexCoords;
+uniform float intensity;
+uniform vec4 colorDiffuse0; // Input Color.
+uniform sampler2D textureDiffuse0;
+void main() {
+
+ vec3 ambient = vec3(0.7333, 0.7333, 0.7333);
+ vec3 diffuse = color;
+ FragColor = intensity * vec4(ambient + diffuse, 1.0)*colorDiffuse0 * texture(textureDiffuse0, TexCoords);
+}
\ No newline at end of file
diff --git a/assets/shaders/basicColor2/basicColor2.vert b/assets/shaders/basicColor2/basicColor2.vert
new file mode 100644
index 0000000..e4e526d
--- /dev/null
+++ b/assets/shaders/basicColor2/basicColor2.vert
@@ -0,0 +1,32 @@
+#version 330 core
+// Input : vertex attributes.
+layout (location = 0) in vec3 aPos; // Position of the vertex.
+layout (location = 1) in vec3 aNormal; // Normal of the vertex.
+layout (location = 2) in vec2 aTexCoords; // Texture coordonate of the vertex.
+layout (location = 3) in vec3 aTangent; // Texture coordonate of the vertex.
+layout (location = 4) in vec3 aBitangent; // Texture coordonate of the vertex.
+
+// The result : color of the fragment.
+out vec3 color;
+out vec2 TexCoords;
+
+// Uniform input variable.
+uniform mat4 projection; // Projection of the camera.
+uniform mat4 model; // Transforms transformation.
+uniform mat4 view; // View transformation of the camera.
+uniform vec3 lightPos;
+
+void main() {
+
+ gl_Position = projection * view * model * vec4(aPos, 1.0);
+ vec4 newPos = model * vec4(aPos, 1.0);
+ // vec4 newNormal = model * vec4(aNormal, 1.0);
+ vec3 newPos3 = newPos.xyz;
+ // vec3 newNormal3 = newNormal.xyz;
+ vec3 newNormal3 = mat3(transpose(inverse(model))) * aNormal;
+ vec3 lightVec = vec3(normalize((lightPos - newPos3)));
+ float diffuse = dot(lightVec, newNormal3);
+ //color = vec3(1,1,1);
+ color = vec3(diffuse);
+ TexCoords = aTexCoords;
+}
\ No newline at end of file
diff --git a/assets/shrekt.png b/assets/shrekt.png
new file mode 100644
index 0000000..803ae4e
Binary files /dev/null and b/assets/shrekt.png differ
diff --git a/assets/spaceEngine.png b/assets/spaceEngine.png
new file mode 100644
index 0000000..a7208a1
Binary files /dev/null and b/assets/spaceEngine.png differ
diff --git a/assets/spaceEngineIcon.png b/assets/spaceEngineIcon.png
new file mode 100644
index 0000000..d3cf38c
Binary files /dev/null and b/assets/spaceEngineIcon.png differ
diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in
new file mode 100644
index 0000000..56a1576
--- /dev/null
+++ b/doc/Doxyfile.in
@@ -0,0 +1,331 @@
+# Doxyfile 1.8.13
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+DOXYFILE_ENCODING = UTF-8
+PROJECT_NAME = @PROJECT@
+PROJECT_NUMBER =
+PROJECT_BRIEF =
+PROJECT_LOGO =
+OUTPUT_DIRECTORY = "@CMAKE_CURRENT_BINARY_DIR@/doc_html"
+CREATE_SUBDIRS = NO
+ALLOW_UNICODE_NAMES = NO
+OUTPUT_LANGUAGE = French
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = YES
+ABBREVIATE_BRIEF = "The $name class" \
+ "The $name widget" \
+ "The $name file" \
+ is \
+ provides \
+ specifies \
+ contains \
+ represents \
+ a \
+ an \
+ the
+ALWAYS_DETAILED_SEC = NO
+INLINE_INHERITED_MEMB = NO
+FULL_PATH_NAMES = YES
+STRIP_FROM_PATH =
+STRIP_FROM_INC_PATH =
+SHORT_NAMES = NO
+JAVADOC_AUTOBRIEF = NO
+QT_AUTOBRIEF = NO
+MULTILINE_CPP_IS_BRIEF = NO
+INHERIT_DOCS = YES
+SEPARATE_MEMBER_PAGES = NO
+TAB_SIZE = 4
+ALIASES =
+TCL_SUBST =
+OPTIMIZE_OUTPUT_FOR_C = YES
+OPTIMIZE_OUTPUT_JAVA = NO
+OPTIMIZE_FOR_FORTRAN = NO
+OPTIMIZE_OUTPUT_VHDL = NO
+EXTENSION_MAPPING =
+MARKDOWN_SUPPORT = YES
+TOC_INCLUDE_HEADINGS = 0
+AUTOLINK_SUPPORT = YES
+BUILTIN_STL_SUPPORT = NO
+CPP_CLI_SUPPORT = NO
+SIP_SUPPORT = NO
+IDL_PROPERTY_SUPPORT = YES
+DISTRIBUTE_GROUP_DOC = NO
+GROUP_NESTED_COMPOUNDS = NO
+SUBGROUPING = YES
+INLINE_GROUPED_CLASSES = NO
+INLINE_SIMPLE_STRUCTS = NO
+TYPEDEF_HIDES_STRUCT = NO
+LOOKUP_CACHE_SIZE = 0
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL = YES
+EXTRACT_PRIVATE = NO
+EXTRACT_PACKAGE = NO
+EXTRACT_STATIC = NO
+EXTRACT_LOCAL_CLASSES = YES
+EXTRACT_LOCAL_METHODS = NO
+EXTRACT_ANON_NSPACES = NO
+HIDE_UNDOC_MEMBERS = NO
+HIDE_UNDOC_CLASSES = NO
+HIDE_FRIEND_COMPOUNDS = NO
+HIDE_IN_BODY_DOCS = NO
+INTERNAL_DOCS = NO
+CASE_SENSE_NAMES = NO
+HIDE_SCOPE_NAMES = YES
+HIDE_COMPOUND_REFERENCE= NO
+SHOW_INCLUDE_FILES = YES
+SHOW_GROUPED_MEMB_INC = NO
+FORCE_LOCAL_INCLUDES = NO
+INLINE_INFO = YES
+SORT_MEMBER_DOCS = YES
+SORT_BRIEF_DOCS = NO
+SORT_MEMBERS_CTORS_1ST = NO
+SORT_GROUP_NAMES = NO
+SORT_BY_SCOPE_NAME = NO
+STRICT_PROTO_MATCHING = NO
+GENERATE_TODOLIST = YES
+GENERATE_TESTLIST = YES
+GENERATE_BUGLIST = YES
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS =
+MAX_INITIALIZER_LINES = 30
+SHOW_USED_FILES = YES
+SHOW_FILES = YES
+SHOW_NAMESPACES = YES
+FILE_VERSION_FILTER =
+LAYOUT_FILE =
+CITE_BIB_FILES =
+#---------------------------------------------------------------------------
+# Configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET = NO
+WARNINGS = YES
+WARN_IF_UNDOCUMENTED = YES
+WARN_IF_DOC_ERROR = YES
+WARN_NO_PARAMDOC = NO
+WARN_AS_ERROR = NO
+WARN_FORMAT = "$file:$line: $text"
+WARN_LOGFILE =
+#---------------------------------------------------------------------------
+# Configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT = "@CMAKE_CURRENT_SOURCE_DIR@/src/"
+INPUT_ENCODING = UTF-8
+FILE_PATTERNS = *.hpp *.h
+RECURSIVE = YES
+EXCLUDE =
+EXCLUDE_SYMLINKS = NO
+EXCLUDE_PATTERNS =
+EXCLUDE_SYMBOLS =
+EXAMPLE_PATH =
+EXAMPLE_PATTERNS = *
+EXAMPLE_RECURSIVE = NO
+IMAGE_PATH =
+INPUT_FILTER =
+FILTER_PATTERNS =
+FILTER_SOURCE_FILES = NO
+FILTER_SOURCE_PATTERNS =
+USE_MDFILE_AS_MAINPAGE =
+#---------------------------------------------------------------------------
+# Configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER = NO
+INLINE_SOURCES = NO
+STRIP_CODE_COMMENTS = YES
+REFERENCED_BY_RELATION = NO
+REFERENCES_RELATION = NO
+REFERENCES_LINK_SOURCE = YES
+SOURCE_TOOLTIPS = YES
+USE_HTAGS = NO
+VERBATIM_HEADERS = YES
+CLANG_ASSISTED_PARSING = NO
+CLANG_OPTIONS =
+#---------------------------------------------------------------------------
+# Configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX = YES
+COLS_IN_ALPHA_INDEX = 5
+IGNORE_PREFIX =
+#---------------------------------------------------------------------------
+# Configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML = YES
+HTML_OUTPUT = html
+HTML_FILE_EXTENSION = .html
+HTML_HEADER =
+HTML_FOOTER =
+HTML_STYLESHEET =
+HTML_EXTRA_STYLESHEET =
+HTML_EXTRA_FILES =
+HTML_COLORSTYLE_HUE = 194
+HTML_COLORSTYLE_SAT = 177
+HTML_COLORSTYLE_GAMMA = 103
+HTML_TIMESTAMP = NO
+HTML_DYNAMIC_SECTIONS = NO
+HTML_INDEX_NUM_ENTRIES = 100
+GENERATE_DOCSET = NO
+DOCSET_FEEDNAME = "Doxygen generated docs"
+DOCSET_BUNDLE_ID = org.doxygen.Project
+DOCSET_PUBLISHER_ID = org.doxygen.Publisher
+DOCSET_PUBLISHER_NAME = Publisher
+GENERATE_HTMLHELP = NO
+CHM_FILE =
+HHC_LOCATION =
+GENERATE_CHI = NO
+CHM_INDEX_ENCODING =
+BINARY_TOC = NO
+TOC_EXPAND = NO
+GENERATE_QHP = NO
+QCH_FILE =
+QHP_NAMESPACE = org.doxygen.Project
+QHP_VIRTUAL_FOLDER = doc
+QHP_CUST_FILTER_NAME =
+QHP_CUST_FILTER_ATTRS =
+QHP_SECT_FILTER_ATTRS =
+QHG_LOCATION =
+GENERATE_ECLIPSEHELP = NO
+ECLIPSE_DOC_ID = org.doxygen.Project
+DISABLE_INDEX = NO
+GENERATE_TREEVIEW = YES
+ENUM_VALUES_PER_LINE = 4
+TREEVIEW_WIDTH = 250
+EXT_LINKS_IN_WINDOW = NO
+FORMULA_FONTSIZE = 10
+FORMULA_TRANSPARENT = YES
+USE_MATHJAX = NO
+MATHJAX_FORMAT = HTML-CSS
+MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
+MATHJAX_EXTENSIONS =
+MATHJAX_CODEFILE =
+SEARCHENGINE = NO
+SERVER_BASED_SEARCH = NO
+EXTERNAL_SEARCH = NO
+SEARCHENGINE_URL =
+SEARCHDATA_FILE = searchdata.xml
+EXTERNAL_SEARCH_ID =
+EXTRA_SEARCH_MAPPINGS =
+#---------------------------------------------------------------------------
+# Configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX = NO
+LATEX_OUTPUT = latex
+LATEX_CMD_NAME = latex
+MAKEINDEX_CMD_NAME = makeindex
+COMPACT_LATEX = NO
+PAPER_TYPE = a4
+EXTRA_PACKAGES =
+LATEX_HEADER =
+LATEX_FOOTER =
+LATEX_EXTRA_STYLESHEET =
+LATEX_EXTRA_FILES =
+PDF_HYPERLINKS = YES
+USE_PDFLATEX = YES
+LATEX_BATCHMODE = NO
+LATEX_HIDE_INDICES = NO
+LATEX_SOURCE_CODE = NO
+LATEX_BIB_STYLE = plain
+LATEX_TIMESTAMP = NO
+#---------------------------------------------------------------------------
+# Configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF = NO
+RTF_OUTPUT = rtf
+COMPACT_RTF = NO
+RTF_HYPERLINKS = NO
+RTF_STYLESHEET_FILE =
+RTF_EXTENSIONS_FILE =
+RTF_SOURCE_CODE = NO
+#---------------------------------------------------------------------------
+# Configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN = NO
+MAN_OUTPUT = man
+MAN_EXTENSION = .3
+MAN_SUBDIR =
+MAN_LINKS = NO
+#---------------------------------------------------------------------------
+# Configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML = NO
+XML_OUTPUT = xml
+XML_PROGRAMLISTING = YES
+#---------------------------------------------------------------------------
+# Configuration options related to the DOCBOOK output
+#---------------------------------------------------------------------------
+GENERATE_DOCBOOK = NO
+DOCBOOK_OUTPUT = docbook
+DOCBOOK_PROGRAMLISTING = NO
+#---------------------------------------------------------------------------
+# Configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF = NO
+#---------------------------------------------------------------------------
+# Configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD = NO
+PERLMOD_LATEX = NO
+PERLMOD_PRETTY = YES
+PERLMOD_MAKEVAR_PREFIX =
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING = YES
+MACRO_EXPANSION = NO
+EXPAND_ONLY_PREDEF = NO
+SEARCH_INCLUDES = YES
+INCLUDE_PATH =
+INCLUDE_FILE_PATTERNS =
+PREDEFINED =
+EXPAND_AS_DEFINED =
+SKIP_FUNCTION_MACROS = YES
+#---------------------------------------------------------------------------
+# Configuration options related to external references
+#---------------------------------------------------------------------------
+TAGFILES =
+GENERATE_TAGFILE =
+ALLEXTERNALS = NO
+EXTERNAL_GROUPS = YES
+EXTERNAL_PAGES = YES
+PERL_PATH = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS = NO
+MSCGEN_PATH =
+DIA_PATH =
+HIDE_UNDOC_RELATIONS = YES
+HAVE_DOT = NO
+DOT_NUM_THREADS = 0
+DOT_FONTNAME = Helvetica
+DOT_FONTSIZE = 10
+DOT_FONTPATH =
+CLASS_GRAPH = YES
+COLLABORATION_GRAPH = YES
+GROUP_GRAPHS = YES
+UML_LOOK = NO
+UML_LIMIT_NUM_FIELDS = 10
+TEMPLATE_RELATIONS = NO
+INCLUDE_GRAPH = YES
+INCLUDED_BY_GRAPH = YES
+CALL_GRAPH = NO
+CALLER_GRAPH = NO
+GRAPHICAL_HIERARCHY = YES
+DIRECTORY_GRAPH = YES
+DOT_IMAGE_FORMAT = png
+INTERACTIVE_SVG = NO
+DOT_PATH =
+DOTFILE_DIRS =
+MSCFILE_DIRS =
+DIAFILE_DIRS =
+PLANTUML_JAR_PATH =
+PLANTUML_CFG_FILE =
+PLANTUML_INCLUDE_PATH =
+DOT_GRAPH_MAX_NODES = 50
+MAX_DOT_GRAPH_DEPTH = 0
+DOT_TRANSPARENT = NO
+DOT_MULTI_TARGETS = NO
+GENERATE_LEGEND = YES
+DOT_CLEANUP = YES
diff --git a/lib/All/entt/.bazelignore b/lib/All/entt/.bazelignore
new file mode 100644
index 0000000..9daeafb
--- /dev/null
+++ b/lib/All/entt/.bazelignore
@@ -0,0 +1 @@
+test
diff --git a/lib/All/entt/.bazeliskrc b/lib/All/entt/.bazeliskrc
new file mode 100644
index 0000000..773a4f4
--- /dev/null
+++ b/lib/All/entt/.bazeliskrc
@@ -0,0 +1 @@
+USE_BAZEL_VERSION=6.x
diff --git a/lib/All/entt/.bazelrc b/lib/All/entt/.bazelrc
new file mode 100644
index 0000000..f47b186
--- /dev/null
+++ b/lib/All/entt/.bazelrc
@@ -0,0 +1,16 @@
+common --enable_bzlmod
+build --enable_platform_specific_config
+build --incompatible_enable_cc_toolchain_resolution
+build --enable_runfiles
+build --incompatible_strict_action_env
+
+# required for googletest
+build:linux --cxxopt=-std=c++17
+build:macos --cxxopt=-std=c++17
+
+common:ci --announce_rc
+common:ci --verbose_failures
+common:ci --keep_going
+test:ci --test_output=errors
+
+try-import %workspace%/user.bazelrc
diff --git a/lib/All/entt/.clang-format b/lib/All/entt/.clang-format
new file mode 100644
index 0000000..f7bc6eb
--- /dev/null
+++ b/lib/All/entt/.clang-format
@@ -0,0 +1,43 @@
+BasedOnStyle: llvm
+---
+AccessModifierOffset: -4
+AlignEscapedNewlines: DontAlign
+AllowShortBlocksOnASingleLine: Always
+AllowShortEnumsOnASingleLine: true
+AllowShortFunctionsOnASingleLine: Empty
+AllowShortIfStatementsOnASingleLine: WithoutElse
+AllowShortLambdasOnASingleLine: All
+AllowShortLoopsOnASingleLine: true
+AlwaysBreakTemplateDeclarations: Yes
+BreakBeforeBinaryOperators: NonAssignment
+BreakBeforeTernaryOperators: true
+ColumnLimit: 0
+DerivePointerAlignment: false
+IncludeCategories:
+ - Regex: '<[[:alnum:]_]+>'
+ Priority: 1
+ - Regex: '<(gtest|gmock)/'
+ Priority: 2
+ - Regex: '<[[:alnum:]_./]+>'
+ Priority: 3
+ - Regex: '
+ bugprone-*,
+ clang-analyzer-*,
+ -clang-analyzer-optin.core.EnumCastOutOfRange,
+ concurrency-*,
+ cppcoreguidelines-*,
+ -cppcoreguidelines-owning-memory,
+ -cppcoreguidelines-pro-bounds-constant-array-index,
+ -cppcoreguidelines-pro-type-const-cast,
+ -cppcoreguidelines-pro-type-member-init,
+ -cppcoreguidelines-pro-type-reinterpret-cast,
+ -cppcoreguidelines-pro-type-union-access,
+ misc-*,
+ -misc-include-cleaner,
+ -misc-no-recursion,
+ modernize-*,
+ -modernize-use-trailing-return-type,
+ performance-*,
+ portability-*,
+ readability-*,
+ -readability-function-cognitive-complexity,
+ -readability-named-parameter,
+ -readability-uppercase-literal-suffix,
+CheckOptions:
+ - key: cppcoreguidelines-avoid-magic-numbers.IgnoreAllFloatingPointValues
+ value: true
+ - key: cppcoreguidelines-avoid-magic-numbers.IgnorePowersOf2IntegerValues
+ value: true
+ - key: cppcoreguidelines-rvalue-reference-param-not-moved.AllowPartialMove
+ value: true
+ - key: cppcoreguidelines-rvalue-reference-param-not-moved.IgnoreUnnamedParams
+ value: true
+ - key: cppcoreguidelines-special-member-functions.AllowMissingMoveFunctions
+ value: true
+ - key: cppcoreguidelines-special-member-functions.AllowMissingMoveFunctionsWhenCopyIsDeleted
+ value: true
+ - key: cppcoreguidelines-special-member-functions.AllowSoleDefaultDtor
+ value: true
+ - key: misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic
+ value: true
+ - key: misc-non-private-member-variables-in-classes.IgnorePublicMemberVariables
+ value: true
+ - key: modernize-avoid-c-arrays.AllowStringArrays
+ value: true
+ - key: performance-enum-size.EnumIgnoreList
+ value: meta_traits
+ - key: readability-function-cognitive-complexity.IgnoreMacros
+ value: true
+ - key: readability-identifier-length.MinimumParameterNameLength
+ value: 2
+ - key: readability-identifier-length.MinimumVariableNameLength
+ value: 2
+ - key: readability-magic-numbers.IgnoreAllFloatingPointValues
+ value: true
+ - key: readability-magic-numbers.IgnorePowersOf2IntegerValues
+ value: true
diff --git a/lib/All/entt/.github/FUNDING.yml b/lib/All/entt/.github/FUNDING.yml
new file mode 100644
index 0000000..1f5e723
--- /dev/null
+++ b/lib/All/entt/.github/FUNDING.yml
@@ -0,0 +1,4 @@
+# These are supported funding model platforms
+
+github: skypjack
+custom: https://www.paypal.me/skypjack
diff --git a/lib/All/entt/.github/workflows/bazel-release-archive.yml b/lib/All/entt/.github/workflows/bazel-release-archive.yml
new file mode 100644
index 0000000..72c4eff
--- /dev/null
+++ b/lib/All/entt/.github/workflows/bazel-release-archive.yml
@@ -0,0 +1,23 @@
+name: Bazel Release
+
+on:
+ release:
+ types: [published]
+
+jobs:
+ # A release archive is required for bzlmod
+ # See: https://blog.bazel.build/2023/02/15/github-archive-checksum.html
+ bazel-release-archive:
+ runs-on: ubuntu-latest
+ continue-on-error: true
+ permissions:
+ contents: write
+ steps:
+ - uses: actions/setup-go@v5
+ - run: go install github.com/bazelbuild/buildtools/buildozer@latest
+ - uses: actions/checkout@v4
+ - run: ./scripts/sync_bzlmod_version.sh
+ - run: git archive $GITHUB_REF -o "entt-${GITHUB_REF:10}.tar.gz"
+ - run: gh release upload ${GITHUB_REF:10} "entt-${GITHUB_REF:10}.tar.gz"
+ env:
+ GH_TOKEN: ${{ github.token }}
diff --git a/lib/All/entt/.github/workflows/bazel.yml b/lib/All/entt/.github/workflows/bazel.yml
new file mode 100644
index 0000000..d0cc387
--- /dev/null
+++ b/lib/All/entt/.github/workflows/bazel.yml
@@ -0,0 +1,23 @@
+name: bazel
+
+on: [push, pull_request]
+
+jobs:
+
+ test:
+ strategy:
+ matrix:
+ os:
+ - ubuntu-latest
+ - windows-latest
+ - macos-latest
+
+ runs-on: ${{ matrix.os }}
+ continue-on-error: true
+
+ steps:
+ - uses: actions/checkout@v4
+ - run: bazelisk test --config=ci ...
+ working-directory: test
+ env:
+ USE_BAZEL_VERSION: 6.x
diff --git a/lib/All/entt/.github/workflows/build.yml b/lib/All/entt/.github/workflows/build.yml
new file mode 100644
index 0000000..aab487e
--- /dev/null
+++ b/lib/All/entt/.github/workflows/build.yml
@@ -0,0 +1,104 @@
+name: build
+
+on: [push, pull_request]
+
+jobs:
+
+ linux:
+ strategy:
+ matrix:
+ compiler:
+ - { pkg: g++, exe: 'g++', version: 12 }
+ - { pkg: g++, exe: 'g++', version: 13 }
+ - { pkg: g++, exe: 'g++', version: 14 }
+ - { pkg: clang, exe: 'clang++', version: 16 }
+ - { pkg: clang, exe: 'clang++', version: 17 }
+ - { pkg: clang, exe: 'clang++', version: 18 }
+
+ timeout-minutes: 15
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+ - name: Install compiler
+ run: |
+ sudo apt update
+ sudo apt install -y ${{ matrix.compiler.pkg }}-${{ matrix.compiler.version }}
+ - name: Compile tests
+ working-directory: build
+ env:
+ CXX: ${{ matrix.compiler.exe }}-${{ matrix.compiler.version }}
+ run: |
+ cmake -DENTT_BUILD_TESTING=ON -DENTT_BUILD_LIB=ON -DENTT_BUILD_EXAMPLE=ON ..
+ make -j4
+ - name: Run tests
+ working-directory: build
+ env:
+ CTEST_OUTPUT_ON_FAILURE: 1
+ run: ctest -C Debug -j4
+
+ windows:
+ strategy:
+ matrix:
+ toolset: [default, v142, clang-cl]
+ include:
+ - toolset: v142
+ toolset_option: -T"v142"
+ - toolset: clang-cl
+ toolset_option: -T"ClangCl"
+
+ timeout-minutes: 15
+ runs-on: windows-latest
+
+ steps:
+ - uses: actions/checkout@v4
+ - name: Compile tests
+ working-directory: build
+ run: |
+ cmake -DENTT_BUILD_TESTING=ON -DENTT_BUILD_LIB=ON -DENTT_BUILD_EXAMPLE=ON ${{ matrix.toolset_option }} ..
+ cmake --build . -j 4
+ - name: Run tests
+ working-directory: build
+ env:
+ CTEST_OUTPUT_ON_FAILURE: 1
+ run: ctest -C Debug -j4
+
+ macos:
+ timeout-minutes: 15
+ runs-on: macOS-latest
+
+ steps:
+ - uses: actions/checkout@v4
+ - name: Compile tests
+ working-directory: build
+ run: |
+ cmake -DENTT_BUILD_TESTING=ON -DENTT_BUILD_LIB=ON -DENTT_BUILD_EXAMPLE=ON ..
+ make -j4
+ - name: Run tests
+ working-directory: build
+ env:
+ CTEST_OUTPUT_ON_FAILURE: 1
+ run: ctest -C Debug -j4
+
+ extra:
+ strategy:
+ matrix:
+ os: [windows-latest, macOS-latest, ubuntu-latest]
+ id_type: ["std::uint32_t", "std::uint64_t"]
+ cxx_std: [cxx_std_17, cxx_std_20]
+
+ timeout-minutes: 15
+ runs-on: ${{ matrix.os }}
+
+ steps:
+ - uses: actions/checkout@v4
+ - name: Compile tests
+ working-directory: build
+ run: |
+ cmake -DENTT_BUILD_TESTING=ON -DENTT_CXX_STD=${{ matrix.cxx_std }} -DENTT_ID_TYPE=${{ matrix.id_type }} ..
+ cmake --build . -j 4
+ - name: Run tests
+ working-directory: build
+ env:
+ CTEST_OUTPUT_ON_FAILURE: 1
+ run: ctest -C Debug -j4
diff --git a/lib/All/entt/.github/workflows/coverage.yml b/lib/All/entt/.github/workflows/coverage.yml
new file mode 100644
index 0000000..a21135a
--- /dev/null
+++ b/lib/All/entt/.github/workflows/coverage.yml
@@ -0,0 +1,38 @@
+name: coverage
+
+on: [push, pull_request]
+
+jobs:
+
+ codecov:
+ timeout-minutes: 15
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+ - name: Compile tests
+ working-directory: build
+ env:
+ CXXFLAGS: "--coverage -fno-elide-constructors -fno-inline -fno-default-inline"
+ CXX: g++
+ run: |
+ cmake -DENTT_BUILD_TESTING=ON -DENTT_BUILD_LIB=ON -DENTT_BUILD_EXAMPLE=ON ..
+ make -j4
+ - name: Run tests
+ working-directory: build
+ env:
+ CTEST_OUTPUT_ON_FAILURE: 1
+ run: ctest -C Debug -j4
+ - name: Collect data
+ working-directory: build
+ run: |
+ sudo apt install lcov
+ lcov -c -d . -o coverage.info --ignore-errors gcov,gcov,mismatch,mismatch
+ lcov -l coverage.info
+ - name: Upload coverage to Codecov
+ uses: codecov/codecov-action@v3
+ with:
+ token: ${{ secrets.CODECOV_TOKEN }}
+ files: build/coverage.info
+ name: EnTT
+ fail_ci_if_error: true
diff --git a/lib/All/entt/.github/workflows/deploy.yml b/lib/All/entt/.github/workflows/deploy.yml
new file mode 100644
index 0000000..1d58b67
--- /dev/null
+++ b/lib/All/entt/.github/workflows/deploy.yml
@@ -0,0 +1,39 @@
+name: deploy
+
+on:
+ release:
+ types: published
+
+jobs:
+
+ homebrew-entt:
+ timeout-minutes: 5
+ runs-on: ubuntu-latest
+
+ env:
+ GH_REPO: homebrew-entt
+ FORMULA: entt.rb
+
+ steps:
+ - uses: actions/checkout@v3
+ - name: Clone repository
+ working-directory: build
+ env:
+ PERSONAL_ACCESS_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ run: git clone https://$GITHUB_ACTOR:$PERSONAL_ACCESS_TOKEN@github.com/$GITHUB_ACTOR/$GH_REPO.git
+ - name: Prepare formula
+ working-directory: build
+ run: |
+ cd $GH_REPO
+ curl "https://github.com/${{ github.repository }}/archive/${{ github.ref }}.tar.gz" --location --fail --silent --show-error --output archive.tar.gz
+ sed -i -e '/url/s/".*"/"'$(echo "https://github.com/${{ github.repository }}/archive/${{ github.ref }}.tar.gz" | sed -e 's/[\/&]/\\&/g')'"/' $FORMULA
+ sed -i -e '/sha256/s/".*"/"'$(openssl sha256 archive.tar.gz | cut -d " " -f 2)'"/' $FORMULA
+ - name: Update remote
+ working-directory: build
+ run: |
+ cd $GH_REPO
+ git config --local user.email "action@github.com"
+ git config --local user.name "$GITHUB_ACTOR"
+ git add $FORMULA
+ git commit -m "Update to ${{ github.ref }}"
+ git push origin master
diff --git a/lib/All/entt/.github/workflows/sanitizer.yml b/lib/All/entt/.github/workflows/sanitizer.yml
new file mode 100644
index 0000000..930cb79
--- /dev/null
+++ b/lib/All/entt/.github/workflows/sanitizer.yml
@@ -0,0 +1,31 @@
+name: sanitizer
+
+on: [push, pull_request]
+
+jobs:
+
+ clang:
+ timeout-minutes: 15
+
+ strategy:
+ matrix:
+ compiler: [clang++]
+ id_type: ["std::uint32_t", "std::uint64_t"]
+ cxx_std: [cxx_std_17, cxx_std_20]
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+ - name: Compile tests
+ working-directory: build
+ env:
+ CXX: ${{ matrix.compiler }}
+ run: |
+ cmake -DENTT_USE_SANITIZER=ON -DENTT_BUILD_TESTING=ON -DENTT_BUILD_LIB=ON -DENTT_BUILD_EXAMPLE=ON -DENTT_CXX_STD=${{ matrix.cxx_std }} -DENTT_ID_TYPE=${{ matrix.id_type }} ..
+ make -j4
+ - name: Run tests
+ working-directory: build
+ env:
+ CTEST_OUTPUT_ON_FAILURE: 1
+ run: ctest -C Debug -j4
diff --git a/lib/All/entt/.github/workflows/tools.yml b/lib/All/entt/.github/workflows/tools.yml
new file mode 100644
index 0000000..8196c7b
--- /dev/null
+++ b/lib/All/entt/.github/workflows/tools.yml
@@ -0,0 +1,84 @@
+name: tools
+
+on:
+ push:
+ branches:
+ - tools
+
+jobs:
+
+ iwyu:
+ timeout-minutes: 60
+
+ env:
+ IWYU: "0.23"
+ LLVM: "19"
+
+ runs-on: ubuntu-latest
+ continue-on-error: true
+
+ steps:
+ - uses: actions/checkout@v4
+ - name: Install llvm/clang
+ # see: https://apt.llvm.org/
+ run: |
+ wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
+ sudo add-apt-repository "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-$LLVM main"
+ sudo apt update
+ sudo apt remove -y "llvm*"
+ sudo apt remove -y "libclang*"
+ sudo apt remove -y "clang*"
+ sudo apt install -y llvm-$LLVM-dev
+ sudo apt install -y libclang-$LLVM-dev
+ sudo apt install -y clang-$LLVM
+ - name: Compile iwyu
+ # see: https://github.com/include-what-you-use/include-what-you-use
+ working-directory: build
+ run: |
+ git clone https://github.com/include-what-you-use/include-what-you-use.git --branch $IWYU --depth 1
+ mkdir include-what-you-use/build
+ cd include-what-you-use/build
+ cmake -DCMAKE_C_COMPILER=clang-$LLVM \
+ -DCMAKE_CXX_COMPILER=clang++-$LLVM \
+ -DCMAKE_INSTALL_PREFIX=./ \
+ ..
+ make -j4
+ bin/include-what-you-use --version
+ - name: Compile tests
+ working-directory: build
+ run: |
+ export PATH=$PATH:${GITHUB_WORKSPACE}/build/include-what-you-use/build/bin
+ cmake -DCMAKE_C_COMPILER=clang-$LLVM \
+ -DCMAKE_CXX_COMPILER=clang++-$LLVM \
+ -DENTT_BUILD_TESTING=ON \
+ -DENTT_BUILD_BENCHMARK=ON \
+ -DENTT_BUILD_EXAMPLE=ON \
+ -DENTT_BUILD_LIB=ON \
+ -DENTT_BUILD_SNAPSHOT=ON \
+ -DENTT_BUILD_TOOLS=ON \
+ -DCMAKE_CXX_INCLUDE_WHAT_YOU_USE="include-what-you-use;-Xiwyu;--mapping_file=${GITHUB_WORKSPACE}/entt.imp;-Xiwyu;--no_fwd_decls;-Xiwyu;--verbose=1" \
+ ..
+ make -j4
+
+ clang-tidy:
+ timeout-minutes: 60
+
+ runs-on: ubuntu-latest
+ continue-on-error: true
+
+ steps:
+ - uses: actions/checkout@v4
+ - name: Compile tests
+ working-directory: build
+ env:
+ CXX: clang++
+ run: |
+ cmake -DENTT_BUILD_TESTING=ON \
+ -DENTT_BUILD_BENCHMARK=ON \
+ -DENTT_BUILD_EXAMPLE=ON \
+ -DENTT_BUILD_LIB=ON \
+ -DENTT_BUILD_SNAPSHOT=ON \
+ -DENTT_BUILD_TOOLS=ON \
+ -DENTT_USE_CLANG_TIDY=ON \
+ ..
+ make -j4
diff --git a/lib/All/entt/.gitignore b/lib/All/entt/.gitignore
new file mode 100644
index 0000000..ddcbd98
--- /dev/null
+++ b/lib/All/entt/.gitignore
@@ -0,0 +1,16 @@
+# Conan
+conan/test_package/build
+
+# IDEs
+*.user
+.idea
+.vscode
+.vs
+CMakeSettings.json
+cpp.hint
+
+# Bazel
+/bazel-*
+/test/bazel-*
+/user.bazelrc
+*.bazel.lock
diff --git a/lib/All/entt/AUTHORS b/lib/All/entt/AUTHORS
new file mode 100644
index 0000000..13b5fed
--- /dev/null
+++ b/lib/All/entt/AUTHORS
@@ -0,0 +1,56 @@
+# Author
+
+skypjack
+
+# Contributors
+
+alexames
+BenediktConze
+bjadamson
+ceeac
+ColinH
+corystegel
+Croydon
+cschreib
+cugone
+dbacchet
+dBagrat
+djarek
+DNKpp
+DonKult
+drglove
+eliasdaler
+erez-o
+eugeneko
+gale83
+ghost
+grdowns
+Green-Sky
+Innokentiy-Alaytsev
+Kerndog73
+Koward
+Lawrencemm
+markand
+mhammerc
+Milerius
+Minimonium
+morbo84
+m-waka
+netpoetica
+NixAJ
+Oortonaut
+Paolo-Oliverio
+pgruenbacher
+prowolf
+Qix-
+stefanofiorentino
+suVrik
+szunhammer
+The5-1
+vblanco20-1
+willtunnels
+WizardIke
+WoLfulus
+w1th0utnam3
+xissburg
+zaucy
diff --git a/lib/All/entt/BUILD.bazel b/lib/All/entt/BUILD.bazel
new file mode 100644
index 0000000..aafff39
--- /dev/null
+++ b/lib/All/entt/BUILD.bazel
@@ -0,0 +1,6 @@
+package(default_visibility = ["//visibility:public"])
+
+alias(
+ name = "entt",
+ actual = "//src:entt",
+)
diff --git a/lib/All/entt/CMakeLists.txt b/lib/All/entt/CMakeLists.txt
new file mode 100644
index 0000000..597995e
--- /dev/null
+++ b/lib/All/entt/CMakeLists.txt
@@ -0,0 +1,330 @@
+# EnTT
+
+cmake_minimum_required(VERSION 3.15.7)
+
+# Read project version
+
+set(ENTT_VERSION_REGEX "#define ENTT_VERSION_.*[ \t]+(.+)")
+file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/src/entt/config/version.h" ENTT_VERSION REGEX ${ENTT_VERSION_REGEX})
+list(TRANSFORM ENTT_VERSION REPLACE ${ENTT_VERSION_REGEX} "\\1")
+string(JOIN "." ENTT_VERSION ${ENTT_VERSION})
+
+# Project configuration
+
+project(
+ EnTT
+ VERSION ${ENTT_VERSION}
+ DESCRIPTION "Gaming meets modern C++ - a fast and reliable entity-component system (ECS) and much more"
+ HOMEPAGE_URL "https://github.com/skypjack/entt"
+ LANGUAGES C CXX
+)
+
+if(NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE Debug)
+endif()
+
+message(VERBOSE "*")
+message(VERBOSE "* ${PROJECT_NAME} v${PROJECT_VERSION} (${CMAKE_BUILD_TYPE})")
+message(VERBOSE "* Copyright (c) 2017-2025 Michele Caini ")
+message(VERBOSE "*")
+
+# CMake stuff
+
+list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
+
+# Compiler stuff
+
+option(ENTT_USE_LIBCPP "Use libc++ by adding -stdlib=libc++ flag if available." OFF)
+option(ENTT_USE_SANITIZER "Enable sanitizers by adding -fsanitize=address -fno-omit-frame-pointer -fsanitize=undefined flags if available." OFF)
+option(ENTT_USE_CLANG_TIDY "Enable static analysis with clang-tidy" OFF)
+
+if(ENTT_USE_LIBCPP)
+ if(NOT WIN32)
+ include(CheckCXXSourceCompiles)
+ include(CMakePushCheckState)
+
+ cmake_push_check_state()
+
+ set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -stdlib=libc++")
+
+ check_cxx_source_compiles("
+ #include
+ int main() { return std::is_same_v; }
+ " ENTT_HAS_LIBCPP)
+
+ cmake_pop_check_state()
+ endif()
+
+ if(NOT ENTT_HAS_LIBCPP)
+ message(VERBOSE "The option ENTT_USE_LIBCPP is set but libc++ is not available.")
+ endif()
+endif()
+
+if(ENTT_USE_SANITIZER)
+ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU")
+ set(ENTT_HAS_SANITIZER TRUE CACHE BOOL "" FORCE)
+ mark_as_advanced(ENTT_HAS_SANITIZER)
+ endif()
+
+ if(NOT ENTT_HAS_SANITIZER)
+ message(VERBOSE "The option ENTT_USE_SANITIZER is set but sanitizer support is not available.")
+ endif()
+endif()
+
+if(ENTT_USE_CLANG_TIDY)
+ find_program(ENTT_CLANG_TIDY_EXECUTABLE "clang-tidy")
+
+ if(NOT ENTT_CLANG_TIDY_EXECUTABLE)
+ message(VERBOSE "The option ENTT_USE_CLANG_TIDY is set but clang-tidy executable is not available.")
+ endif()
+endif()
+
+# Add EnTT target
+
+include(GNUInstallDirs)
+
+add_library(EnTT INTERFACE)
+add_library(EnTT::EnTT ALIAS EnTT)
+
+target_include_directories(
+ EnTT
+ INTERFACE
+ $
+ $
+)
+
+target_compile_features(EnTT INTERFACE cxx_std_17)
+
+if(ENTT_HAS_LIBCPP)
+ target_compile_options(EnTT BEFORE INTERFACE -stdlib=libc++)
+endif()
+
+if(ENTT_HAS_SANITIZER)
+ target_compile_options(EnTT INTERFACE $<$:-fsanitize=address -fno-omit-frame-pointer -fsanitize=undefined>)
+ target_link_libraries(EnTT INTERFACE $<$:-fsanitize=address -fno-omit-frame-pointer -fsanitize=undefined>)
+endif()
+
+if(ENTT_CLANG_TIDY_EXECUTABLE)
+ set(CMAKE_CXX_CLANG_TIDY "${ENTT_CLANG_TIDY_EXECUTABLE};--config-file=${EnTT_SOURCE_DIR}/.clang-tidy;--header-filter=${EnTT_SOURCE_DIR}/src/entt/.*")
+endif()
+
+# Add EnTT goodies
+
+option(ENTT_INCLUDE_HEADERS "Add all EnTT headers to the EnTT target." OFF)
+option(ENTT_INCLUDE_NATVIS "Add EnTT natvis files to the EnTT target." OFF)
+
+if(ENTT_INCLUDE_NATVIS)
+ if(MSVC)
+ set(ENTT_HAS_NATVIS TRUE CACHE BOOL "" FORCE)
+ mark_as_advanced(ENTT_HAS_NATVIS)
+ endif()
+
+ if(NOT ENTT_HAS_NATVIS)
+ message(VERBOSE "The option ENTT_INCLUDE_NATVIS is set but natvis files are not supported. They will not be added to the target.")
+ endif()
+endif()
+
+if(ENTT_INCLUDE_HEADERS)
+ target_sources(
+ EnTT
+ INTERFACE
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ )
+endif()
+
+if(ENTT_HAS_NATVIS)
+ target_sources(
+ EnTT
+ INTERFACE
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ $
+ )
+endif()
+
+# Install EnTT and all related files
+
+option(ENTT_INSTALL "Install EnTT and all related files." OFF)
+
+if(ENTT_INSTALL)
+ # Install pkg-config file
+
+ include(JoinPaths)
+
+ set(EnTT_PKGCONFIG ${CMAKE_CURRENT_BINARY_DIR}/entt.pc)
+
+ join_paths(EnTT_PKGCONFIG_INCLUDEDIR "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}")
+
+ configure_file(
+ ${EnTT_SOURCE_DIR}/cmake/in/entt.pc.in
+ ${EnTT_PKGCONFIG}
+ @ONLY
+ )
+
+ install(
+ FILES ${EnTT_PKGCONFIG}
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
+ )
+
+ # Install EnTT
+
+ include(CMakePackageConfigHelpers)
+
+ install(
+ TARGETS EnTT
+ EXPORT EnTTTargets
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ )
+
+ write_basic_package_version_file(
+ EnTTConfigVersion.cmake
+ VERSION ${PROJECT_VERSION}
+ COMPATIBILITY AnyNewerVersion
+ )
+
+ configure_package_config_file(
+ ${EnTT_SOURCE_DIR}/cmake/in/EnTTConfig.cmake.in
+ EnTTConfig.cmake
+ INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/EnTT/cmake
+ )
+
+ export(
+ EXPORT EnTTTargets
+ FILE ${CMAKE_CURRENT_BINARY_DIR}/EnTTTargets.cmake
+ NAMESPACE EnTT::
+ )
+
+ install(
+ EXPORT EnTTTargets
+ FILE EnTTTargets.cmake
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/EnTT/cmake
+ NAMESPACE EnTT::
+ )
+
+ install(
+ FILES
+ ${PROJECT_BINARY_DIR}/EnTTConfig.cmake
+ ${PROJECT_BINARY_DIR}/EnTTConfigVersion.cmake
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/EnTT/cmake
+ )
+
+ install(
+ DIRECTORY src/
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+ FILES_MATCHING
+ PATTERN "*.h"
+ PATTERN "*.hpp"
+ )
+
+ export(PACKAGE EnTT)
+endif()
+
+# Tests
+
+option(ENTT_BUILD_TESTING "Enable building tests." OFF)
+
+if(ENTT_BUILD_TESTING)
+ option(ENTT_FIND_GTEST_PACKAGE "Enable finding gtest package." OFF)
+
+ option(ENTT_BUILD_BENCHMARK "Build benchmark." OFF)
+ option(ENTT_BUILD_EXAMPLE "Build examples." OFF)
+ option(ENTT_BUILD_LIB "Build lib tests." OFF)
+ option(ENTT_BUILD_SNAPSHOT "Build snapshot test with Cereal." OFF)
+
+ set(ENTT_ID_TYPE std::uint32_t CACHE STRING "Type of identifiers to use for the tests")
+ set(ENTT_CXX_STD cxx_std_17 CACHE STRING "C++ standard revision to use for the tests")
+
+ include(CTest)
+ enable_testing()
+ add_subdirectory(test)
+endif()
+
+# Documentation
+
+option(ENTT_BUILD_DOCS "Enable building with documentation." OFF)
+
+if(ENTT_BUILD_DOCS)
+ add_subdirectory(docs)
+endif()
diff --git a/lib/All/entt/CONTRIBUTING.md b/lib/All/entt/CONTRIBUTING.md
new file mode 100644
index 0000000..117ede6
--- /dev/null
+++ b/lib/All/entt/CONTRIBUTING.md
@@ -0,0 +1,43 @@
+# Contributing
+
+First of all, thank you very much for taking the time to contribute to the
+`EnTT` library.
+How to do it mostly depends on the type of contribution:
+
+* If you have a question, **please** ensure there isn't already an answer for
+ you by searching on GitHub under
+ [issues](https://github.com/skypjack/entt/issues). Do not forget to search
+ also through the closed ones. If you are unable to find a proper answer, feel
+ free to [open a new issue](https://github.com/skypjack/entt/issues/new).
+ Usually, questions are marked as such and closed in a few days.
+
+* If you want to fix a typo in the inline documentation or in the README file,
+ if you want to add some new sections or if you want to help me with the
+ language by reviewing what I wrote so far (I'm not a native speaker after
+ all), **please** open a new
+ [pull request](https://github.com/skypjack/entt/pulls) with your changes.
+
+* If you found a bug, **please** ensure there isn't already an answer for you by
+ searching on GitHub under [issues](https://github.com/skypjack/entt/issues).
+ If you are unable to find an open issue addressing the problem, feel free to
+ [open a new one](https://github.com/skypjack/entt/issues/new). **Please**, do
+ not forget to carefully describe how to reproduce the problem, then add all
+ the information about the system on which you are experiencing it and point
+ out the version of `EnTT` you are using (tag or commit).
+
+* If you found a bug and you wrote a patch to fix it, open a new
+ [pull request](https://github.com/skypjack/entt/pulls) with your code.
+ **Please**, add some tests to avoid regressions in future if possible, it
+ would be really appreciated. Note that the `EnTT` library has a
+ [coverage at 100%](https://coveralls.io/github/skypjack/entt?branch=master)
+ (at least it was at 100% at the time I wrote this file) and this is the reason
+ for which you can be confident with using it in a production environment.
+
+* If you want to propose a new feature and you know how to code it, **please**
+ do not issue directly a pull request. Before to do it,
+ [create a new issue](https://github.com/skypjack/entt/issues/new) to discuss
+ your proposal. Other users could be interested in your idea and the discussion
+ that will follow can refine it and therefore give us a better solution.
+
+* If you want to request a new feature, I'm available for hiring. Take a look at
+ [my profile](https://github.com/skypjack) and feel free to write me.
diff --git a/lib/All/entt/LICENSE b/lib/All/entt/LICENSE
new file mode 100644
index 0000000..e178e28
--- /dev/null
+++ b/lib/All/entt/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2017-2025 Michele Caini, author of EnTT
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copy of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copy or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING 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.
diff --git a/lib/All/entt/MODULE.bazel b/lib/All/entt/MODULE.bazel
new file mode 100644
index 0000000..445754c
--- /dev/null
+++ b/lib/All/entt/MODULE.bazel
@@ -0,0 +1,4 @@
+module(name = "entt")
+
+bazel_dep(name = "rules_cc", version = "0.0.8")
+bazel_dep(name = "bazel_skylib", version = "1.4.2")
diff --git a/lib/All/entt/README.md b/lib/All/entt/README.md
new file mode 100644
index 0000000..5d3b288
--- /dev/null
+++ b/lib/All/entt/README.md
@@ -0,0 +1,414 @@
+
+
+[](https://github.com/skypjack/entt/actions)
+[](https://codecov.io/gh/skypjack/entt)
+[](https://godbolt.org/z/zxW73f)
+[](https://skypjack.github.io/entt/)
+[](https://vcpkg.link/ports/entt)
+[](https://conan.io/center/recipes/entt)
+[](https://gitter.im/skypjack/entt)
+[](https://discord.gg/5BjPWBd)
+
+> `EnTT` has been a dream so far, we haven't found a single bug to date and it's
+> super easy to work with
+>
+> -- Every EnTT User Ever
+
+`EnTT` is a header-only, tiny and easy to use library for game programming and
+much more written in **modern C++**.
+[Among others](https://github.com/skypjack/entt/wiki/EnTT-in-Action), it's used
+in [**Minecraft**](https://minecraft.net/en-us/attribution/) by Mojang, the
+[**ArcGIS Runtime SDKs**](https://developers.arcgis.com/arcgis-runtime/) by Esri
+and the amazing [**Ragdoll**](https://ragdolldynamics.com/).
+If you don't see your project in the list, please open an issue, submit a PR or
+add the [\#entt](https://github.com/topics/entt) tag to your _topics_! :+1:
+
+---
+
+Do you want to **keep up with changes** or do you have a **question** that
+doesn't require you to open an issue?
+Join the [gitter channel](https://gitter.im/skypjack/entt) and the
+[discord server](https://discord.gg/5BjPWBd), meet other users like you. The
+more we are, the better for everyone.
+Don't forget to check the
+[FAQs](https://github.com/skypjack/entt/wiki/Frequently-Asked-Questions) and the
+[wiki](https://github.com/skypjack/entt/wiki) too. Your answers may already be
+there.
+
+Do you want to support `EnTT`? Consider becoming a
+[**sponsor**](https://github.com/users/skypjack/sponsorship) or making a
+donation via [**PayPal**](https://www.paypal.me/skypjack).
+Many thanks to [these people](https://skypjack.github.io/sponsorship/) and
+**special** thanks to:
+
+[](https://mojang.com)
+[](https://img.ly/)
+
+# Table of Contents
+
+* [Introduction](#introduction)
+ * [Code Example](#code-example)
+ * [Motivation](#motivation)
+ * [Benchmark](#benchmark)
+* [Integration](#integration)
+ * [Requirements](#requirements)
+ * [CMake](#cmake)
+ * [Natvis support](#natvis-support)
+ * [Packaging Tools](#packaging-tools)
+ * [pkg-config](#pkg-config)
+* [Documentation](#documentation)
+* [Tests](#tests)
+* [EnTT in Action](#entt-in-action)
+* [Contributors](#contributors)
+* [License](#license)
+
+# Introduction
+
+The entity-component-system (also known as _ECS_) is an architectural pattern
+used mostly in game development. For further details:
+
+* [Entity Systems Wiki](http://entity-systems.wikidot.com/)
+* [Evolve Your Hierarchy](http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/)
+* [ECS on Wikipedia](https://en.wikipedia.org/wiki/Entity%E2%80%93component%E2%80%93system)
+
+This project started off as a pure entity-component system. Over time the
+codebase has grown as more and more classes and functionalities were added.
+Here is a brief, yet incomplete list of what it offers today:
+
+* Built-in **RTTI system** mostly similar to the standard one.
+* A `constexpr` utility for human-readable **resource names**.
+* Minimal **configuration system** built using the monostate pattern.
+* Incredibly fast **entity-component system** with its own _pay for what you
+ use_ policy, unconstrained component types with optional pointer stability and
+ hooks for storage customization.
+* Views and groups to iterate entities and components and allow different access
+ patterns, from **perfect SoA** to fully random.
+* A lot of **facilities** built on top of the entity-component system to help
+ the users and avoid reinventing the wheel.
+* General purpose **execution graph builder** for optimal scheduling.
+* The smallest and most basic implementation of a **service locator** ever seen.
+* A built-in, non-intrusive and macro-free runtime **reflection system**.
+* **Static polymorphism** made simple and within everyone's reach.
+* A few homemade containers, like a sparse set based **hash map**.
+* A **cooperative scheduler** for processes of any type.
+* All that is needed for **resource management** (cache, loaders, handles).
+* Delegates, **signal handlers** and a tiny event dispatcher.
+* A general purpose **event emitter** as a CRTP idiom based class template.
+* And **much more**! Check out the
+ [**wiki**](https://github.com/skypjack/entt/wiki).
+
+Consider this list a work in progress as well as the project. The whole API is
+fully documented in-code for those who are brave enough to read it.
+Please, do note that all tools are also DLL-friendly now and run smoothly across
+boundaries.
+
+One thing known to most is that `EnTT` is also used in **Minecraft**.
+Given that the game is available literally everywhere, I can confidently say
+that the library has been sufficiently tested on every platform that can come to
+mind.
+
+## Code Example
+
+```cpp
+#include
+
+struct position {
+ float x;
+ float y;
+};
+
+struct velocity {
+ float dx;
+ float dy;
+};
+
+void update(entt::registry ®istry) {
+ auto view = registry.view();
+
+ // use a callback
+ view.each([](const auto &pos, auto &vel) { /* ... */ });
+
+ // use an extended callback
+ view.each([](const auto entity, const auto &pos, auto &vel) { /* ... */ });
+
+ // use a range-for
+ for(auto [entity, pos, vel]: view.each()) {
+ // ...
+ }
+
+ // use forward iterators and get only the components of interest
+ for(auto entity: view) {
+ auto &vel = view.get(entity);
+ // ...
+ }
+}
+
+int main() {
+ entt::registry registry;
+
+ for(auto i = 0u; i < 10u; ++i) {
+ const auto entity = registry.create();
+ registry.emplace(entity, i * 1.f, i * 1.f);
+ if(i % 2 == 0) { registry.emplace(entity, i * .1f, i * .1f); }
+ }
+
+ update(registry);
+}
+```
+
+## Motivation
+
+I started developing `EnTT` for the _wrong_ reason: my goal was to design an
+entity-component system to beat another well known open source library both in
+terms of performance and possibly memory usage.
+In the end, I did it, but it wasn't very satisfying. Actually it wasn't
+satisfying at all. The fastest and nothing more, fairly little indeed. When I
+realized it, I tried hard to keep intact the great performance of `EnTT` and to
+add all the features I wanted to see in *my own library* at the same time.
+
+Nowadays, `EnTT` is finally what I was looking for: still faster than its
+_competitors_, lower memory usage in the average case, a really good API and an
+amazing set of features. And even more, of course.
+
+## Benchmark
+
+For what it's worth, you'll **never** see me trying to make other projects look
+bad or offer dubious comparisons just to make this library seem cooler.
+I leave this activity to others, if they enjoy it (and it seems that some people
+actually like it). I prefer to make better use of my time.
+
+If you are interested, you can compile the `benchmark` test in release mode (to
+enable compiler optimizations, otherwise it would make little sense) by setting
+the `ENTT_BUILD_BENCHMARK` option of `CMake` to `ON`, then evaluate yourself
+whether you're satisfied with the results or not.
+
+There are also a lot of projects out there that use `EnTT` as a basis for
+comparison (this should already tell you a lot). Many of these benchmarks are
+completely wrong, many others are simply incomplete, good at omitting some
+information and using the wrong function to compare a given feature. Certainly
+there are also good ones but they age quickly if nobody updates them, especially
+when the library they are dealing with is actively developed.
+Out of all of them, [this](https://github.com/abeimler/ecs_benchmark) seems like
+the most up-to-date project and also covers a certain number of libraries. I
+can't say exactly whether `EnTT` is used correctly or not. However, even if used
+poorly, it should still give the reader an idea of where it's going to operate.
+
+# Integration
+
+`EnTT` is a header-only library. This means that including the `entt.hpp` header
+is enough to include the library as a whole and use it. For those who are
+interested only in the entity-component system, consider to include the sole
+`entity/registry.hpp` header instead.
+It's a matter of adding the following line to the top of a file:
+
+```cpp
+#include
+```
+
+Use the line below to include only the entity-component system instead:
+
+```cpp
+#include
+```
+
+Then pass the proper `-I` argument to the compiler to add the `src` directory to
+the include paths.
+
+## Requirements
+
+To be able to use `EnTT`, users must provide a full-featured compiler that
+supports at least C++17.
+The requirements below are mandatory to compile the tests and to extract the
+documentation:
+
+* `CMake` version 3.7 or later.
+* `Doxygen` version 1.8 or later.
+
+Alternatively, [Bazel](https://bazel.build) is also supported as a build system
+(credits to [zaucy](https://github.com/zaucy) who offered to maintain it).
+In the documentation below I'll still refer to `CMake`, this being the official
+build system of the library.
+
+## CMake
+
+To use `EnTT` from a `CMake` project, just link an existing target to the
+`EnTT::EnTT` alias.
+The library offers everything you need for locating (as in `find_package`),
+embedding (as in `add_subdirectory`), fetching (as in `FetchContent`) or using
+it in many of the ways that you can think of and that involve `CMake`.
+Covering all possible cases would require a treatise and not a simple README
+file, but I'm confident that anyone reading this section also knows what it's
+about and can use `EnTT` from a `CMake` project without problems.
+
+## Natvis support
+
+When using `CMake`, just enable the option `ENTT_INCLUDE_NATVIS` and enjoy
+it.
+Otherwise, most of the tools are covered via Natvis and all files can be found
+in the `natvis` directory, divided by module.
+If you spot errors or have suggestions, any contribution is welcome!
+
+## Packaging Tools
+
+`EnTT` is available for some of the most known packaging tools. In particular:
+
+* [`Conan`](https://github.com/conan-io/conan-center-index), the C/C++ Package
+ Manager for Developers.
+
+* [`vcpkg`](https://github.com/Microsoft/vcpkg), Microsoft VC++ Packaging
+ Tool.
+ You can download and install `EnTT` in just a few simple steps:
+
+ ```
+ $ git clone https://github.com/Microsoft/vcpkg.git
+ $ cd vcpkg
+ $ ./bootstrap-vcpkg.sh
+ $ ./vcpkg integrate install
+ $ vcpkg install entt
+ ```
+
+ Or you can use the `experimental` feature to test the latest changes:
+
+ ```
+ vcpkg install entt[experimental] --head
+ ```
+
+ The `EnTT` port in `vcpkg` is kept up to date by Microsoft team members and
+ community contributors.
+ If the version is out of date, please
+ [create an issue or pull request](https://github.com/Microsoft/vcpkg) on the
+ `vcpkg` repository.
+
+* [`Homebrew`](https://github.com/skypjack/homebrew-entt), the missing package
+ manager for macOS.
+ Available as a homebrew formula. Just type the following to install it:
+
+ ```
+ brew install skypjack/entt/entt
+ ```
+
+* [`build2`](https://build2.org), build toolchain for developing and packaging C
+ and C++ code.
+ In order to use the [`entt`](https://cppget.org/entt) package in a `build2`
+ project, add the following line or a similar one to the `manifest` file:
+
+ ```
+ depends: entt ^3.0.0
+ ```
+
+ Also check that the configuration refers to a valid repository, so that the
+ package can be found by `build2`:
+
+ * [`cppget.org`](https://cppget.org), the open-source community central
+ repository, accessible as `https://pkg.cppget.org/1/stable`.
+
+ * [Package source repository](https://github.com/build2-packaging/entt):
+ accessible as either `https://github.com/build2-packaging/entt.git` or
+ `ssh://git@github.com/build2-packaging/entt.git`.
+ Feel free to [report issues](https://github.com/build2-packaging/entt) with
+ this package.
+
+ Both can be used with `bpkg add-repo` or added in a project
+ `repositories.manifest`. See the official
+ [documentation](https://build2.org/build2-toolchain/doc/build2-toolchain-intro.xhtml#guide-repositories)
+ for more details.
+
+* [`bzlmod`](https://bazel.build/external/overview#bzlmod), Bazel's external
+ dependency management system.
+ To use the [`entt`](https://registry.bazel.build/modules/entt) module in a
+ `bazel` project, add the following to your `MODULE.bazel` file:
+
+ ```starlark
+ bazel_dep(name = "entt", version = "3.12.2")
+ ```
+
+ EnTT will now be available as `@entt` (short for `@entt//:entt`) to be used
+ in your `cc_*` rule `deps`.
+
+Consider this list a work in progress and help me to make it longer if you like.
+
+## pkg-config
+
+`EnTT` also supports `pkg-config` (for some definition of _supports_ at least).
+A suitable file called `entt.pc` is generated and installed in a proper
+directory when running `CMake`.
+This should also make it easier to use with tools such as `Meson` or similar.
+
+# Documentation
+
+The documentation is based on [doxygen](http://www.doxygen.nl/). To build it:
+
+ $ cd build
+ $ cmake .. -DENTT_BUILD_DOCS=ON
+ $ make
+
+The API reference is created in HTML format in the `build/docs/html` directory.
+To navigate it with your favorite browser:
+
+ $ cd build
+ $ your_favorite_browser docs/html/index.html
+
+The same version is also available [online](https://skypjack.github.io/entt/)
+for the latest release, that is the last stable tag.
+Moreover, there exists a [wiki](https://github.com/skypjack/entt/wiki) dedicated
+to the project where users can find all related documentation pages.
+
+# Tests
+
+To compile and run the tests, `EnTT` requires *googletest*.
+`cmake` downloads and compiles the library before compiling anything else. In
+order to build the tests, set the `CMake` option `ENTT_BUILD_TESTING` to `ON`.
+
+To build the most basic set of tests:
+
+* `$ cd build`
+* `$ cmake -DENTT_BUILD_TESTING=ON ..`
+* `$ make`
+* `$ make test`
+
+Note that benchmarks are not part of this set.
+
+# EnTT in Action
+
+`EnTT` is widely used in private and commercial applications. I cannot even
+mention most of them because of some signatures I put on some documents time
+ago. Fortunately, there are also people who took the time to implement open
+source projects based on `EnTT` and did not hold back when it came to
+documenting them.
+
+[Here](https://github.com/skypjack/entt/wiki/EnTT-in-Action) you can find an
+incomplete list of games, applications and articles that can be used as a
+reference.
+
+If you know of other resources out there that are about `EnTT`, feel free to
+open an issue or a PR and I'll be glad to add them to the list.
+
+# Contributors
+
+Requests for features, PRs, suggestions and feedback are highly appreciated.
+
+If you find you can help and want to contribute to the project with your
+experience or you do want to get part of the project for some other reason, feel
+free to contact me directly (you can find the mail in the
+[profile](https://github.com/skypjack)).
+I can't promise that each and every contribution will be accepted, but I can
+assure that I'll do my best to take them all as soon as possible.
+
+If you decide to participate, please see the guidelines for
+[contributing](https://github.com/skypjack/entt/blob/master/CONTRIBUTING.md)
+before to create issues or pull requests.
+Take also a look at the
+[contributors list](https://github.com/skypjack/entt/blob/master/AUTHORS) to
+know who has participated so far.
+
+# License
+
+Code and documentation Copyright (c) 2017-2025 Michele Caini.
+Colorful logo Copyright (c) 2018-2021 Richard Caseres.
+
+Code released under
+[the MIT license](https://github.com/skypjack/entt/blob/master/LICENSE).
+Documentation released under
+[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).
+All logos released under
+[CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/).
diff --git a/lib/All/entt/TODO b/lib/All/entt/TODO
new file mode 100644
index 0000000..590c670
--- /dev/null
+++ b/lib/All/entt/TODO
@@ -0,0 +1,37 @@
+EXAMPLES
+* filter on runtime values/variables (not only types)
+* support to polymorphic types (see #859)
+
+DOC:
+* custom storage/view
+* update entity doc when the storage based model is in place
+* in-place O(1) release/destroy for non-orphaned entities, out-of-sync model
+* view: single vs multi type views are no longer a thing actually
+* bump entities, reserved bits on identifiers
+
+TODO:
+* review all NOLINT
+* bring nested groups back in place (see bd34e7f)
+* work stealing job system (see #100) + mt scheduler based on const awareness for types
+* view: reduce inst due to/improve perf with index-based approach in dispatch_get/pick_and_each/each (single type too, define storage ::at and ::at_as_tuple)
+* view: update natvis as needed after the last rework, merge pools/filter in the same array, drop check (?) and turn view into a position
+* view: type-only view_iterator (dyn get/excl sizes), type-only basic_common_view (dyn get/excl sizes with pointer to array from derived)
+* combine version-mask-vs-version-bits tricks with reserved bits to allow things like enabling/disabling
+* self contained entity traits to avoid explicit specializations (ie enum constants)
+* auto type info data from types if present
+* test: push sharing types further
+* storage entity: fast range-push from above
+* table: pop back to support swap and pop, single column access, empty type optimization
+* review cmake warning about FetchContent_Populate (need .28 and EXCLUDE_FROM_ALL for FetchContent)
+* suppress -Wself-move on CI with g++13
+* view specializations for multi, single and filtered elements
+* don't pass reactive storage by default to callback
+* runtime types support for meta for types that aren't backed by C++ types
+* built-in no-pagination storage - no_pagination page size as limits::max
+* any cdynamic to support const ownership construction
+* allow passing arguments to meta setter/getter (we can fallback on meta invoke probably)
+* FetchContent_Populate -> FetchContent_MakeAvailable warnings
+* doc: IMPLICIT_DIR_DOCS for dir docs or \dir
+* meta non-const allow_cast overloads: (const int &) to (int &) is not allowed, but (const int &) to (double &) is allowed (support only for convertibles)
+* improve non-const allow cast with in-place switch
+* meta fixed_size could return the size directly if present
diff --git a/lib/All/entt/WORKSPACE.bazel b/lib/All/entt/WORKSPACE.bazel
new file mode 100644
index 0000000..600260d
--- /dev/null
+++ b/lib/All/entt/WORKSPACE.bazel
@@ -0,0 +1 @@
+# SEE MODULE.bazel
diff --git a/lib/All/entt/bazel/BUILD.bazel b/lib/All/entt/bazel/BUILD.bazel
new file mode 100644
index 0000000..e69de29
diff --git a/lib/All/entt/bazel/copts.bzl b/lib/All/entt/bazel/copts.bzl
new file mode 100644
index 0000000..83f71ca
--- /dev/null
+++ b/lib/All/entt/bazel/copts.bzl
@@ -0,0 +1,13 @@
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+COPTS = selects.with_or({
+ ("//conditions:default", "@rules_cc//cc/compiler:clang", "@rules_cc//cc/compiler:gcc", "@rules_cc//cc/compiler:mingw-gcc"): [
+ "-std=c++17",
+ "-w",
+ ],
+ ("@rules_cc//cc/compiler:msvc-cl", "@rules_cc//cc/compiler:clang-cl"): [
+ "/std:c++17",
+ "/permissive-",
+ "/w",
+ ],
+})
diff --git a/lib/All/entt/build/.gitignore b/lib/All/entt/build/.gitignore
new file mode 100644
index 0000000..d6b7ef3
--- /dev/null
+++ b/lib/All/entt/build/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/lib/All/entt/cmake/in/EnTTConfig.cmake.in b/lib/All/entt/cmake/in/EnTTConfig.cmake.in
new file mode 100644
index 0000000..f34782e
--- /dev/null
+++ b/lib/All/entt/cmake/in/EnTTConfig.cmake.in
@@ -0,0 +1,5 @@
+@PACKAGE_INIT@
+
+set(EnTT_VERSION "@PROJECT_VERSION@")
+include("${CMAKE_CURRENT_LIST_DIR}/EnTTTargets.cmake")
+check_required_components("@PROJECT_NAME@")
diff --git a/lib/All/entt/cmake/in/entt.pc.in b/lib/All/entt/cmake/in/entt.pc.in
new file mode 100644
index 0000000..c4df519
--- /dev/null
+++ b/lib/All/entt/cmake/in/entt.pc.in
@@ -0,0 +1,8 @@
+prefix=@CMAKE_INSTALL_PREFIX@
+includedir=@EnTT_PKGCONFIG_INCLUDEDIR@
+
+Name: EnTT
+Description: Gaming meets modern C++
+Url: https://github.com/skypjack/entt
+Version: @ENTT_VERSION@
+Cflags: -I${includedir}
diff --git a/lib/All/entt/cmake/modules/JoinPaths.cmake b/lib/All/entt/cmake/modules/JoinPaths.cmake
new file mode 100644
index 0000000..fa0be17
--- /dev/null
+++ b/lib/All/entt/cmake/modules/JoinPaths.cmake
@@ -0,0 +1,23 @@
+# This module provides function for joining paths
+# known from most languages
+#
+# SPDX-License-Identifier: (MIT OR CC0-1.0)
+# Copyright 2020 Jan Tojnar
+# https://github.com/jtojnar/cmake-snips
+#
+# Modelled after Pythons os.path.join
+# https://docs.python.org/3.7/library/os.path.html#os.path.join
+# Windows not supported
+function(join_paths joined_path first_path_segment)
+ set(temp_path "${first_path_segment}")
+ foreach(current_segment IN LISTS ARGN)
+ if(NOT ("${current_segment}" STREQUAL ""))
+ if(IS_ABSOLUTE "${current_segment}")
+ set(temp_path "${current_segment}")
+ else()
+ set(temp_path "${temp_path}/${current_segment}")
+ endif()
+ endif()
+ endforeach()
+ set(${joined_path} "${temp_path}" PARENT_SCOPE)
+endfunction()
diff --git a/lib/All/entt/conan/build.py b/lib/All/entt/conan/build.py
new file mode 100644
index 0000000..462f9c5
--- /dev/null
+++ b/lib/All/entt/conan/build.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+from cpt.packager import ConanMultiPackager
+import os
+
+if __name__ == "__main__":
+ username = os.getenv("GITHUB_ACTOR")
+ tag_version = os.getenv("GITHUB_REF")
+ tag_package = os.getenv("GITHUB_REPOSITORY")
+ login_username = os.getenv("CONAN_LOGIN_USERNAME")
+ package_version = tag_version.replace("refs/tags/v", "")
+ package_name = tag_package.replace("skypjack/", "")
+ reference = "{}/{}".format(package_name, package_version)
+ channel = os.getenv("CONAN_CHANNEL", "stable")
+ upload = os.getenv("CONAN_UPLOAD")
+ stable_branch_pattern = os.getenv("CONAN_STABLE_BRANCH_PATTERN", r"v\d+\.\d+\.\d+.*")
+ test_folder = os.getenv("CPT_TEST_FOLDER", os.path.join("conan", "test_package"))
+ upload_only_when_stable = os.getenv("CONAN_UPLOAD_ONLY_WHEN_STABLE", True)
+ disable_shared = os.getenv("CONAN_DISABLE_SHARED_BUILD", "False")
+
+ builder = ConanMultiPackager(username=username,
+ reference=reference,
+ channel=channel,
+ login_username=login_username,
+ upload=upload,
+ stable_branch_pattern=stable_branch_pattern,
+ upload_only_when_stable=upload_only_when_stable,
+ test_folder=test_folder)
+ builder.add()
+
+ filtered_builds = []
+ for settings, options, env_vars, build_requires, reference in builder.items:
+ if disable_shared == "False" or not options["{}:shared".format(package_name)]:
+ filtered_builds.append([settings, options, env_vars, build_requires])
+ builder.builds = filtered_builds
+
+ builder.run()
diff --git a/lib/All/entt/conan/ci/build.sh b/lib/All/entt/conan/ci/build.sh
new file mode 100644
index 0000000..d24e9b5
--- /dev/null
+++ b/lib/All/entt/conan/ci/build.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+set -e
+set -x
+
+conan user
+python conan/build.py
diff --git a/lib/All/entt/conan/ci/install.sh b/lib/All/entt/conan/ci/install.sh
new file mode 100644
index 0000000..7b54284
--- /dev/null
+++ b/lib/All/entt/conan/ci/install.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+set -e
+set -x
+
+pip install -U conan_package_tools conan
diff --git a/lib/All/entt/conan/test_package/CMakeLists.txt b/lib/All/entt/conan/test_package/CMakeLists.txt
new file mode 100644
index 0000000..2e9fedb
--- /dev/null
+++ b/lib/All/entt/conan/test_package/CMakeLists.txt
@@ -0,0 +1,13 @@
+cmake_minimum_required(VERSION 3.7.2)
+project(test_package)
+
+set(CMAKE_VERBOSE_MAKEFILE TRUE)
+
+set(CMAKE_CXX_STANDARD 17)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup()
+
+add_executable(${PROJECT_NAME} test_package.cpp)
+target_link_libraries(${PROJECT_NAME} ${CONAN_LIBS})
diff --git a/lib/All/entt/conan/test_package/conanfile.py b/lib/All/entt/conan/test_package/conanfile.py
new file mode 100644
index 0000000..d63f408
--- /dev/null
+++ b/lib/All/entt/conan/test_package/conanfile.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+from conans import ConanFile, CMake
+import os
+
+
+class TestPackageConan(ConanFile):
+ settings = "os", "compiler", "build_type", "arch"
+ generators = "cmake"
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ bin_path = os.path.join("bin", "test_package")
+ self.run(bin_path, run_environment=True)
diff --git a/lib/All/entt/conan/test_package/test_package.cpp b/lib/All/entt/conan/test_package/test_package.cpp
new file mode 100644
index 0000000..138d540
--- /dev/null
+++ b/lib/All/entt/conan/test_package/test_package.cpp
@@ -0,0 +1,56 @@
+#include
+#include
+
+struct position {
+ float x;
+ float y;
+};
+
+struct velocity {
+ float dx;
+ float dy;
+};
+
+void update(entt::registry ®istry) {
+ auto view = registry.view();
+
+ for(auto entity: view) {
+ // gets only the elements that are going to be used ...
+
+ auto &vel = view.get(entity);
+
+ vel.dx = 0.;
+ vel.dy = 0.;
+
+ // ...
+ }
+}
+
+void update(std::uint64_t dt, entt::registry ®istry) {
+ registry.view().each([dt](auto &pos, auto &vel) {
+ // gets all the elements of the view at once ...
+
+ pos.x += vel.dx * dt;
+ pos.y += vel.dy * dt;
+
+ // ...
+ });
+}
+
+int main() {
+ entt::registry registry;
+ std::uint64_t dt = 16;
+
+ for(auto i = 0; i < 10; ++i) {
+ auto entity = registry.create();
+ registry.emplace(entity, i * 1.f, i * 1.f);
+ if(i % 2 == 0) { registry.emplace(entity, i * .1f, i * .1f); }
+ }
+
+ update(dt, registry);
+ update(registry);
+
+ // ...
+
+ return EXIT_SUCCESS;
+}
diff --git a/lib/All/entt/conanfile.py b/lib/All/entt/conanfile.py
new file mode 100644
index 0000000..c987d77
--- /dev/null
+++ b/lib/All/entt/conanfile.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+from conans import ConanFile
+
+
+class EnttConan(ConanFile):
+ name = "entt"
+ description = "Gaming meets modern C++ - a fast and reliable entity-component system (ECS) and much more "
+ topics = ("conan," "entt", "gaming", "entity", "ecs")
+ url = "https://github.com/skypjack/entt"
+ homepage = url
+ author = "Michele Caini "
+ license = "MIT"
+ exports = ["LICENSE"]
+ exports_sources = ["src/*"]
+ no_copy_source = True
+
+ def package(self):
+ self.copy(pattern="LICENSE", dst="licenses")
+ self.copy(pattern="*", dst="include", src="src", keep_path=True)
+
+ def package_info(self):
+ if not self.in_local_cache:
+ self.cpp_info.includedirs = ["src"]
+
+ def package_id(self):
+ self.info.header_only()
diff --git a/lib/All/entt/docs/CMakeLists.txt b/lib/All/entt/docs/CMakeLists.txt
new file mode 100644
index 0000000..56df7dd
--- /dev/null
+++ b/lib/All/entt/docs/CMakeLists.txt
@@ -0,0 +1,59 @@
+# Doxygen configuration (documentation)
+
+find_package(Doxygen 1.13)
+
+if(DOXYGEN_FOUND)
+ include(FetchContent)
+
+ FetchContent_Declare(
+ doxygen-awesome-css
+ GIT_REPOSITORY https://github.com/jothepro/doxygen-awesome-css
+ GIT_TAG main
+ GIT_SHALLOW 1
+ )
+
+ FetchContent_GetProperties(doxygen-awesome-css)
+
+ if(NOT doxygen-awesome-css_POPULATED)
+ FetchContent_Populate(doxygen-awesome-css)
+ set(doxygen-awesome-css_INCLUDE_DIR ${doxygen-awesome-css_SOURCE_DIR})
+ endif()
+
+ set(DOXY_SOURCE_DIRECTORY ${EnTT_SOURCE_DIR}/src)
+ set(DOXY_CSS_DIRECTORY ${doxygen-awesome-css_INCLUDE_DIR})
+ set(DOXY_DOCS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+ set(DOXY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+
+ configure_file(doxy.in doxy.cfg @ONLY)
+
+ add_custom_target(
+ docs ALL
+ COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxy.cfg
+ WORKING_DIRECTORY ${EnTT_SOURCE_DIR}
+ VERBATIM
+ SOURCES
+ md/config.md
+ md/container.md
+ md/core.md
+ md/entity.md
+ md/faq.md
+ md/lib.md
+ md/links.md
+ md/locator.md
+ md/meta.md
+ md/poly.md
+ md/process.md
+ md/reference.md
+ md/resource.md
+ md/signal.md
+ md/unreal.md
+ doxy.in
+ )
+
+ if(ENTT_INSTALL)
+ install(
+ DIRECTORY ${DOXY_OUTPUT_DIRECTORY}/html
+ DESTINATION share/${PROJECT_NAME}-${PROJECT_VERSION}/
+ )
+ endif()
+endif()
diff --git a/lib/All/entt/docs/doxy.in b/lib/All/entt/docs/doxy.in
new file mode 100644
index 0000000..62a6cac
--- /dev/null
+++ b/lib/All/entt/docs/doxy.in
@@ -0,0 +1,2914 @@
+# Doxyfile 1.13.2
+
+# This file describes the settings to be used by the documentation system
+# Doxygen (www.doxygen.org) for a project.
+#
+# All text after a double hash (##) is considered a comment and is placed in
+# front of the TAG it is preceding.
+#
+# All text after a single hash (#) is considered a comment and will be ignored.
+# The format is:
+# TAG = value [value, ...]
+# For lists, items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (\" \").
+#
+# Note:
+#
+# Use Doxygen to compare the used configuration file with the template
+# configuration file:
+# doxygen -x [configFile]
+# Use Doxygen to compare the used configuration file with the template
+# configuration file without replacing the environment variables or CMake type
+# replacement variables:
+# doxygen -x_noenv [configFile]
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the configuration
+# file that follow. The default is UTF-8 which is also the encoding used for all
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
+# iconv built into libc) for the transcoding. See
+# https://www.gnu.org/software/libiconv/ for the list of possible encodings.
+# The default value is: UTF-8.
+
+DOXYFILE_ENCODING = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
+# double-quotes, unless you are using Doxywizard) that should identify the
+# project for which the documentation is generated. This name is used in the
+# title of most generated pages and in a few other places.
+# The default value is: My Project.
+
+PROJECT_NAME = @PROJECT_NAME@
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
+# could be handy for archiving the generated documentation or if some version
+# control system is used.
+
+PROJECT_NUMBER = @PROJECT_VERSION@
+
+# 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 viewers a
+# quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF =
+
+# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
+# in the documentation. The maximum height of the logo should not exceed 55
+# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
+# the logo to the output directory.
+
+PROJECT_LOGO =
+
+# With the PROJECT_ICON tag one can specify an icon that is included in the tabs
+# when the HTML document is shown. Doxygen will copy the logo to the output
+# directory.
+
+PROJECT_ICON =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
+# into which the generated documentation will be written. If a relative path is
+# entered, it will be relative to the location where Doxygen was started. If
+# left blank the current directory will be used.
+
+OUTPUT_DIRECTORY = @DOXY_OUTPUT_DIRECTORY@
+
+# If the CREATE_SUBDIRS tag is set to YES then Doxygen will create up to 4096
+# sub-directories (in 2 levels) under the output directory of each output format
+# and will distribute the generated files over these directories. Enabling this
+# option can be useful when feeding Doxygen a huge amount of source files, where
+# putting all generated files in the same directory would otherwise cause
+# performance problems for the file system. Adapt CREATE_SUBDIRS_LEVEL to
+# control the number of sub-directories.
+# The default value is: NO.
+
+CREATE_SUBDIRS = NO
+
+# Controls the number of sub-directories that will be created when
+# CREATE_SUBDIRS tag is set to YES. Level 0 represents 16 directories, and every
+# level increment doubles the number of directories, resulting in 4096
+# directories at level 8 which is the default and also the maximum value. The
+# sub-directories are organized in 2 levels, the first level always has a fixed
+# number of 16 directories.
+# Minimum value: 0, maximum value: 8, default value: 8.
+# This tag requires that the tag CREATE_SUBDIRS is set to YES.
+
+CREATE_SUBDIRS_LEVEL = 8
+
+# If the ALLOW_UNICODE_NAMES tag is set to YES, Doxygen will allow non-ASCII
+# characters to appear in the names of generated files. If set to NO, non-ASCII
+# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
+# U+3044.
+# The default value is: NO.
+
+ALLOW_UNICODE_NAMES = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by Doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Bulgarian,
+# Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, English
+# (United States), Esperanto, Farsi (Persian), Finnish, French, German, Greek,
+# Hindi, Hungarian, Indonesian, Italian, Japanese, Japanese-en (Japanese with
+# English messages), Korean, Korean-en (Korean with English messages), Latvian,
+# Lithuanian, Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese,
+# Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish,
+# Swedish, Turkish, Ukrainian and Vietnamese.
+# The default value is: English.
+
+OUTPUT_LANGUAGE = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES, Doxygen will include brief member
+# descriptions after the members that are listed in the file and class
+# documentation (similar to Javadoc). Set to NO to disable this.
+# The default value is: YES.
+
+BRIEF_MEMBER_DESC = YES
+
+# If the REPEAT_BRIEF tag is set to YES, Doxygen will prepend the brief
+# description of a member or function before the detailed description
+#
+# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+# The default value is: YES.
+
+REPEAT_BRIEF = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator that is
+# used to form the text in various listings. Each string in this list, if found
+# as the leading text of the brief description, will be stripped from the text
+# and the result, after processing the whole list, is used as the annotated
+# text. Otherwise, the brief description is used as-is. If left blank, the
+# following values are used ($name is automatically replaced with the name of
+# the entity):The $name class, The $name widget, The $name file, is, provides,
+# specifies, contains, represents, a, an and the.
+
+ABBREVIATE_BRIEF =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+# The default value is: NO.
+
+ALWAYS_DETAILED_SEC = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, Doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+# The default value is: NO.
+
+INLINE_INHERITED_MEMB = NO
+
+# If the FULL_PATH_NAMES tag is set to YES, Doxygen will prepend the full path
+# before files name in the file list and in the header files. If set to NO the
+# shortest path that makes the file name unique will be used
+# The default value is: YES.
+
+FULL_PATH_NAMES = YES
+
+# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
+# Stripping is only done if one of the specified strings matches the left-hand
+# part of the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which Doxygen is run is used as the path to
+# strip.
+#
+# Note that you can specify absolute paths here, but also relative paths, which
+# will be relative from the directory where Doxygen is started.
+# This tag requires that the tag FULL_PATH_NAMES is set to YES.
+
+STRIP_FROM_PATH =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
+# path mentioned in the documentation of a class, which tells the reader which
+# header file to include in order to use a class. If left blank only the name of
+# the header file containing the class definition is used. Otherwise one should
+# specify the list of include paths that are normally passed to the compiler
+# using the -I flag.
+
+STRIP_FROM_INC_PATH =
+
+# If the SHORT_NAMES tag is set to YES, Doxygen will generate much shorter (but
+# less readable) file names. This can be useful if your file system doesn't
+# support long names like on DOS, Mac, or CD-ROM.
+# The default value is: NO.
+
+SHORT_NAMES = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen will interpret the
+# first line (until the first dot, question mark or exclamation mark) of a
+# Javadoc-style comment as the brief description. If set to NO, the Javadoc-
+# style will behave just like regular Qt-style comments (thus requiring an
+# explicit @brief command for a brief description.)
+# The default value is: NO.
+
+JAVADOC_AUTOBRIEF = NO
+
+# If the 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
+# line (until the first dot, question mark or exclamation mark) of a Qt-style
+# comment as the brief description. If set to NO, the Qt-style will behave just
+# like regular Qt-style comments (thus requiring an explicit \brief command for
+# a brief description.)
+# The default value is: NO.
+
+QT_AUTOBRIEF = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen treat a
+# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
+# a brief description. This used to be the default behavior. The new default is
+# to treat a multi-line C++ comment block as a detailed description. Set this
+# tag to YES if you prefer the old behavior instead.
+#
+# Note that setting this tag to YES also means that rational rose comments are
+# not recognized any more.
+# The default value is: NO.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# 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
+# documentation from any documented member that it re-implements.
+# The default value is: YES.
+
+INHERIT_DOCS = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES then Doxygen will produce a new
+# page for each member. If set to NO, the documentation of a member will be part
+# of the file/class/namespace that contains it.
+# The default value is: NO.
+
+SEPARATE_MEMBER_PAGES = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
+# uses this value to replace tabs by spaces in code fragments.
+# Minimum value: 1, maximum value: 16, default value: 4.
+
+TAB_SIZE = 4
+
+# This tag can be used to specify a number of aliases that act as commands in
+# the documentation. An alias has the form:
+# name=value
+# For example adding
+# "sideeffect=@par Side Effects:^^"
+# will allow you to put the command \sideeffect (or @sideeffect) in the
+# documentation, which will result in a user-defined paragraph with heading
+# "Side Effects:". Note that you cannot put \n's in the value part of an alias
+# to insert newlines (in the resulting output). You can put ^^ in the value part
+# of an alias to insert a newline as if a physical newline was in the original
+# file. When you need a literal { or } or , in the value part of an alias you
+# have to escape them by means of a backslash (\), this can lead to conflicts
+# with the commands \{ and \} for these it is advised to use the version @{ and
+# @} or use a double escape (\\{ and \\})
+
+ALIASES =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# only. Doxygen will then generate output that is more tailored for C. For
+# instance, some of the names that are used will be different. The list of all
+# members will be omitted, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_FOR_C = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
+# Python sources only. Doxygen will then generate output that is more tailored
+# for that language. For instance, namespaces will be presented as packages,
+# qualified scopes will look different, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_JAVA = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources. Doxygen will then generate output that is tailored for Fortran.
+# The default value is: NO.
+
+OPTIMIZE_FOR_FORTRAN = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for VHDL.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_VHDL = NO
+
+# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice
+# sources only. Doxygen will then generate output that is more tailored for that
+# language. For instance, namespaces will be presented as modules, types will be
+# separated into more groups, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_SLICE = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given
+# extension. Doxygen has a built-in mapping, but you can override or extend it
+# using this tag. The format is ext=language, where ext is a file extension, and
+# language is one of the parsers supported by Doxygen: IDL, Java, JavaScript,
+# Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice,
+# VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran:
+# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser
+# tries to guess whether the code is fixed or free formatted code, this is the
+# default for Fortran type files). For instance to make Doxygen treat .inc files
+# as Fortran files (default is PHP), and .f files as C (default is Fortran),
+# use: inc=Fortran f=C.
+#
+# Note: For files without extension you can use no_extension as a placeholder.
+#
+# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
+# the files are not read by Doxygen. When specifying no_extension you should add
+# * to the FILE_PATTERNS.
+#
+# Note see also the list of default file extension mappings.
+
+EXTENSION_MAPPING =
+
+# If the MARKDOWN_SUPPORT tag is enabled then Doxygen pre-processes all comments
+# according to the Markdown format, which allows for more readable
+# documentation. See https://daringfireball.net/projects/markdown/ for details.
+# The output of markdown processing is further processed by Doxygen, so you can
+# mix Doxygen, HTML, and XML commands with Markdown formatting. Disable only in
+# case of backward compatibilities issues.
+# The default value is: YES.
+
+MARKDOWN_SUPPORT = YES
+
+# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up
+# to that level are automatically included in the table of contents, even if
+# they do not have an id attribute.
+# Note: This feature currently applies only to Markdown headings.
+# Minimum value: 0, maximum value: 99, default value: 6.
+# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
+
+TOC_INCLUDE_HEADINGS = 5
+
+# The MARKDOWN_ID_STYLE tag can be used to specify the algorithm used to
+# generate identifiers for the Markdown headings. Note: Every identifier is
+# unique.
+# Possible values are: DOXYGEN use a fixed 'autotoc_md' string followed by a
+# sequence number starting at 0 and GITHUB use the lower case version of title
+# with any whitespace replaced by '-' and punctuation characters removed.
+# The default value is: DOXYGEN.
+# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
+
+MARKDOWN_ID_STYLE = GITHUB
+
+# When enabled Doxygen tries to link words that correspond to documented
+# classes, or namespaces to their corresponding documentation. Such a link can
+# be prevented in individual cases by putting a % sign in front of the word or
+# globally by setting AUTOLINK_SUPPORT to NO. Words listed in the
+# AUTOLINK_IGNORE_WORDS tag are excluded from automatic linking.
+# The default value is: YES.
+
+AUTOLINK_SUPPORT = YES
+
+# This tag specifies a list of words that, when matching the start of a word in
+# the documentation, will suppress auto links generation, if it is enabled via
+# AUTOLINK_SUPPORT. This list does not affect affect links explicitly created
+# using \# or the \link or commands.
+# This tag requires that the tag AUTOLINK_SUPPORT is set to YES.
+
+AUTOLINK_IGNORE_WORDS =
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should set this
+# tag to YES in order to let Doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string);
+# versus func(std::string) {}). This also makes the inheritance and
+# collaboration diagrams that involve STL classes more complete and accurate.
+# The default value is: NO.
+
+BUILTIN_STL_SUPPORT = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+# The default value is: NO.
+
+CPP_CLI_SUPPORT = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
+# https://www.riverbankcomputing.com/software) sources only. Doxygen will parse
+# them like normal C++ but will assume all classes use public instead of private
+# inheritance when no explicit protection keyword is present.
+# The default value is: NO.
+
+SIP_SUPPORT = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate
+# getter and setter methods for a property. Setting this option to YES will make
+# Doxygen to replace the get and set methods by a property in the documentation.
+# This will only work if the methods are indeed getting or setting a simple
+# type. If this is not the case, or you want to show the methods anyway, you
+# should set this option to NO.
+# The default value is: YES.
+
+IDL_PROPERTY_SUPPORT = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES then Doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+# The default value is: NO.
+
+DISTRIBUTE_GROUP_DOC = NO
+
+# If one adds a struct or class to a group and this option is enabled, then also
+# any nested class or struct is added to the same group. By default this option
+# is disabled and one has to add nested compounds explicitly via \ingroup.
+# The default value is: NO.
+
+GROUP_NESTED_COMPOUNDS = NO
+
+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
+# (for instance a group of public functions) to be put as a subgroup of that
+# type (e.g. under the Public Functions section). Set it to NO to prevent
+# subgrouping. Alternatively, this can be done per class using the
+# \nosubgrouping command.
+# The default value is: YES.
+
+SUBGROUPING = YES
+
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
+# are shown inside the group in which they are included (e.g. using \ingroup)
+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
+# and RTF).
+#
+# Note that this feature does not work in combination with
+# SEPARATE_MEMBER_PAGES.
+# The default value is: NO.
+
+INLINE_GROUPED_CLASSES = NO
+
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
+# with only public data fields or simple typedef fields will be shown inline in
+# the documentation of the scope in which they are defined (i.e. file,
+# namespace, or group documentation), provided this scope is documented. If set
+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
+# Man pages) or section (for LaTeX and RTF).
+# The default value is: NO.
+
+INLINE_SIMPLE_STRUCTS = NO
+
+# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
+# enum is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically be
+# useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+# The default value is: NO.
+
+TYPEDEF_HIDES_STRUCT = NO
+
+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+# cache is used to resolve symbols given their name and scope. Since this can be
+# an expensive process and often the same symbol appears multiple times in the
+# code, Doxygen keeps a cache of pre-resolved symbols. If the cache is too small
+# Doxygen will become slower. If the cache is too large, memory is wasted. The
+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
+# symbols. At the end of a run Doxygen will report the cache usage and suggest
+# the optimal cache size from a speed point of view.
+# Minimum value: 0, maximum value: 9, default value: 0.
+
+LOOKUP_CACHE_SIZE = 0
+
+# The NUM_PROC_THREADS specifies the number of 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 effectively 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
+
+# If the TIMESTAMP tag is set different from NO then each generated page will
+# contain the date or date and time when the page was generated. Setting this to
+# NO can help when comparing the output of multiple runs.
+# Possible values are: YES, NO, DATETIME and DATE.
+# The default value is: NO.
+
+TIMESTAMP = NO
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES, Doxygen will assume all entities in
+# documentation are documented, even if no documentation was available. Private
+# class members and static file members will be hidden unless the
+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
+# Note: This will also disable the warnings about undocumented members that are
+# normally produced when WARNINGS is set to YES.
+# The default value is: NO.
+
+EXTRACT_ALL = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
+# be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PRIVATE = NO
+
+# If the EXTRACT_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
+# scope will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PACKAGE = NO
+
+# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
+# included in the documentation.
+# The default value is: NO.
+
+EXTRACT_STATIC = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
+# locally in source files will be included in the documentation. If set to NO,
+# only classes defined in header files are included. Does not have any effect
+# for Java sources.
+# The default value is: YES.
+
+EXTRACT_LOCAL_CLASSES = YES
+
+# This flag is only useful for Objective-C code. If set to YES, local methods,
+# which are defined in the implementation section but not in the interface are
+# included in the documentation. If set to NO, only methods in the interface are
+# included.
+# The default value is: NO.
+
+EXTRACT_LOCAL_METHODS = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base name of
+# the file that contains the anonymous namespace. By default anonymous namespace
+# are hidden.
+# The default value is: NO.
+
+EXTRACT_ANON_NSPACES = NO
+
+# If 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
+# undocumented members inside documented classes or files. If set to NO these
+# members will be included in the various overviews, but no documentation
+# section is generated. This option has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_MEMBERS = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy. If set
+# to NO, these classes will be included in the various overviews. This option
+# will also hide undocumented C++ concepts if enabled. This option has no effect
+# if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_CLASSES = NO
+
+# If the HIDE_UNDOC_NAMESPACES tag is set to YES, Doxygen will hide all
+# undocumented namespaces that are normally visible in the namespace hierarchy.
+# If set to NO, these namespaces will be included in the various overviews. This
+# option has no effect if EXTRACT_ALL is enabled.
+# The default value is: YES.
+
+HIDE_UNDOC_NAMESPACES = YES
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all friend
+# declarations. If set to NO, these declarations will be included in the
+# documentation.
+# The default value is: NO.
+
+HIDE_FRIEND_COMPOUNDS = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function. If set to NO, these
+# blocks will be appended to the function's detailed documentation block.
+# The default value is: NO.
+
+HIDE_IN_BODY_DOCS = NO
+
+# The INTERNAL_DOCS tag determines if documentation that is typed after a
+# \internal command is included. If the tag is set to NO then the documentation
+# will be excluded. Set it to YES to include the internal documentation.
+# The default value is: NO.
+
+INTERNAL_DOCS = NO
+
+# With the correct setting of option CASE_SENSE_NAMES Doxygen will better be
+# able to match the capabilities of the underlying filesystem. In case the
+# filesystem is case sensitive (i.e. it supports files in the same directory
+# whose names only differ in casing), the option must be set to YES to properly
+# deal with such files in case they appear in the input. For filesystems that
+# are not case sensitive the option should 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.
+# Possible values are: SYSTEM, NO and YES.
+# The default value is: SYSTEM.
+
+CASE_SENSE_NAMES = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO then Doxygen will show members with
+# their full class and namespace scopes in the documentation. If set to YES, the
+# scope will be hidden.
+# The default value is: NO.
+
+HIDE_SCOPE_NAMES = NO
+
+# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then Doxygen will
+# append additional text to a page's title, such as Class Reference. If set to
+# YES the compound reference will be hidden.
+# The default value is: NO.
+
+HIDE_COMPOUND_REFERENCE= NO
+
+# If the SHOW_HEADERFILE tag is set to YES then the documentation for a class
+# will show which file needs to be included to use the class.
+# The default value is: YES.
+
+SHOW_HEADERFILE = YES
+
+# If the SHOW_INCLUDE_FILES tag is set to YES then Doxygen will put a list of
+# the files that are included by a file in the documentation of that file.
+# The default value is: YES.
+
+SHOW_INCLUDE_FILES = YES
+
+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
+# grouped member an include statement to the documentation, telling the reader
+# which file to include in order to use the member.
+# The default value is: NO.
+
+SHOW_GROUPED_MEMB_INC = NO
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen will list include
+# files with double quotes in the documentation rather than with sharp brackets.
+# The default value is: NO.
+
+FORCE_LOCAL_INCLUDES = NO
+
+# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
+# documentation for inline members.
+# The default value is: YES.
+
+INLINE_INFO = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES then Doxygen will sort the
+# (detailed) documentation of file and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order.
+# The default value is: YES.
+
+SORT_MEMBER_DOCS = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then Doxygen will sort the brief
+# descriptions of file, namespace and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order. Note that
+# this will also influence the order of the classes in the class list.
+# The default value is: NO.
+
+SORT_BRIEF_DOCS = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then Doxygen will sort the
+# (brief and detailed) documentation of class members so that constructors and
+# destructors are listed first. If set to NO the constructors will appear in the
+# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
+# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
+# member documentation.
+# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
+# detailed member documentation.
+# The default value is: NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then Doxygen will sort the hierarchy
+# of group names into alphabetical order. If set to NO the group names will
+# appear in their defined order.
+# The default value is: NO.
+
+SORT_GROUP_NAMES = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
+# fully-qualified names, including namespaces. If set to NO, the class list will
+# be sorted only by class name, not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the alphabetical
+# list.
+# The default value is: NO.
+
+SORT_BY_SCOPE_NAME = NO
+
+# If the STRICT_PROTO_MATCHING option is enabled and Doxygen fails to do proper
+# type resolution of all parameters of a function it will reject a match between
+# the prototype and the implementation of a member function even if there is
+# only one candidate or it is obvious which candidate to choose by doing a
+# simple string match. By disabling STRICT_PROTO_MATCHING Doxygen will still
+# accept a match between prototype and implementation in such cases.
+# The default value is: NO.
+
+STRICT_PROTO_MATCHING = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
+# list. This list is created by putting \todo commands in the documentation.
+# The default value is: YES.
+
+GENERATE_TODOLIST = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
+# list. This list is created by putting \test commands in the documentation.
+# The default value is: YES.
+
+GENERATE_TESTLIST = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
+# list. This list is created by putting \bug commands in the documentation.
+# The default value is: YES.
+
+GENERATE_BUGLIST = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
+# the deprecated list. This list is created by putting \deprecated commands in
+# the documentation.
+# The default value is: YES.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional documentation
+# sections, marked by \if ... \endif and \cond
+# ... \endcond blocks.
+
+ENABLED_SECTIONS =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
+# initial value of a variable or macro / define can have for it to appear in the
+# documentation. If the initializer consists of more lines than specified here
+# it will be hidden. Use a value of 0 to hide initializers completely. The
+# appearance of the value of individual variables and macros / defines can be
+# controlled using \showinitializer or \hideinitializer command in the
+# documentation regardless of this setting.
+# Minimum value: 0, maximum value: 10000, default value: 30.
+
+MAX_INITIALIZER_LINES = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
+# the bottom of the documentation of classes and structs. If set to YES, the
+# list will mention the files that were used to generate the documentation.
+# The default value is: YES.
+
+SHOW_USED_FILES = YES
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
+# will remove the Files entry from the Quick Index and from the Folder Tree View
+# (if specified).
+# The default value is: YES.
+
+SHOW_FILES = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
+# page. This will remove the Namespaces entry from the Quick Index and from the
+# Folder Tree View (if specified).
+# The default value is: YES.
+
+SHOW_NAMESPACES = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# Doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command command input-file, where command is the value of the
+# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
+# by Doxygen. Whatever the program writes to standard output is used as the file
+# version. For an example see the documentation.
+
+FILE_VERSION_FILTER =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by Doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. To create the layout file
+# that represents Doxygen's defaults, run Doxygen with the -l option. You can
+# optionally specify a file name after the option, if omitted DoxygenLayout.xml
+# will be used as the name of the layout file. See also section "Changing the
+# layout of pages" for information.
+#
+# Note that if you run Doxygen from a directory containing a file called
+# DoxygenLayout.xml, Doxygen will parse it automatically even if the LAYOUT_FILE
+# tag is left empty.
+
+LAYOUT_FILE =
+
+# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
+# the reference definitions. This must be a list of .bib files. The .bib
+# extension is automatically appended if omitted. This requires the bibtex tool
+# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info.
+# For LaTeX the style of the bibliography can be controlled using
+# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
+# search path. See also \cite for info how to create references.
+
+CITE_BIB_FILES =
+
+# The EXTERNAL_TOOL_PATH tag can be used to extend the search path (PATH
+# environment variable) so that external tools such as latex and gs can be
+# found.
+# Note: Directories specified with EXTERNAL_TOOL_PATH are added in front of the
+# path already specified by the PATH variable, and are added in the order
+# specified.
+# Note: This option is particularly useful for macOS version 14 (Sonoma) and
+# higher, when running Doxygen from Doxywizard, because in this case any user-
+# defined changes to the PATH are ignored. A typical example on macOS is to set
+# EXTERNAL_TOOL_PATH = /Library/TeX/texbin /usr/local/bin
+# together with the standard path, the full search path used by doxygen when
+# launching external tools will then become
+# PATH=/Library/TeX/texbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
+
+EXTERNAL_TOOL_PATH =
+
+#---------------------------------------------------------------------------
+# Configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated to
+# standard output by Doxygen. If QUIET is set to YES this implies that the
+# messages are off.
+# The default value is: NO.
+
+QUIET = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated to standard error (stderr) by Doxygen. If WARNINGS is set to YES
+# this implies that the warnings are on.
+#
+# Tip: Turn warnings on while writing the documentation.
+# The default value is: YES.
+
+WARNINGS = YES
+
+# If the WARN_IF_UNDOCUMENTED tag is set to YES then Doxygen will generate
+# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
+# will automatically be disabled.
+# The default value is: YES.
+
+WARN_IF_UNDOCUMENTED = YES
+
+# If the WARN_IF_DOC_ERROR tag is set to YES, Doxygen will generate warnings for
+# potential errors in the documentation, such as documenting some parameters in
+# a documented function twice, or documenting parameters that don't exist or
+# using markup commands wrongly.
+# The default value is: YES.
+
+WARN_IF_DOC_ERROR = YES
+
+# If WARN_IF_INCOMPLETE_DOC is set to YES, Doxygen will warn about incomplete
+# function parameter documentation. If set to NO, Doxygen will accept that some
+# parameters have no documentation without warning.
+# The default value is: YES.
+
+WARN_IF_INCOMPLETE_DOC = YES
+
+# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
+# are documented, but have no documentation for their parameters or return
+# value. If set to NO, Doxygen will only warn about wrong parameter
+# documentation, but not about the absence of documentation. If EXTRACT_ALL is
+# set to YES then this flag will automatically be disabled. See also
+# WARN_IF_INCOMPLETE_DOC
+# The default value is: NO.
+
+WARN_NO_PARAMDOC = YES
+
+# If WARN_IF_UNDOC_ENUM_VAL option is set to YES, Doxygen will warn about
+# undocumented enumeration values. If set to NO, Doxygen will accept
+# undocumented enumeration values. If EXTRACT_ALL is set to YES then this flag
+# will automatically be disabled.
+# The default value is: NO.
+
+WARN_IF_UNDOC_ENUM_VAL = YES
+
+# If WARN_LAYOUT_FILE option is set to YES, Doxygen will warn about issues found
+# while parsing the user defined layout file, such as missing or wrong elements.
+# See also LAYOUT_FILE for details. If set to NO, problems with the layout file
+# will be suppressed.
+# The default value is: YES.
+
+WARN_LAYOUT_FILE = YES
+
+# If the WARN_AS_ERROR tag is set to YES then Doxygen will immediately stop when
+# 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.
+# If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS_PRINT then Doxygen behaves
+# like FAIL_ON_WARNINGS but in case no WARN_LOGFILE is defined Doxygen will not
+# write the warning messages in between other messages but write them at the end
+# of a run, in case a WARN_LOGFILE is defined the warning messages will be
+# besides being in the defined file also be shown at the end of a run, unless
+# the WARN_LOGFILE is defined as - i.e. standard output (stdout) in that case
+# the behavior will remain as with the setting FAIL_ON_WARNINGS.
+# Possible values are: NO, YES, FAIL_ON_WARNINGS and FAIL_ON_WARNINGS_PRINT.
+# The default value is: NO.
+
+WARN_AS_ERROR = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that Doxygen
+# can produce. The string should contain the $file, $line, and $text tags, which
+# will be replaced by the file and line number from which the warning originated
+# and the warning text. Optionally the format may contain $version, which will
+# be replaced by the version of the file (if it could be obtained via
+# FILE_VERSION_FILTER)
+# See also: WARN_LINE_FORMAT
+# The default value is: $file:$line: $text.
+
+WARN_FORMAT = "$file:$line: $text"
+
+# In the $text part of the WARN_FORMAT command it is possible that a reference
+# to a more specific place is given. To make it easier to jump to this place
+# (outside of Doxygen) the user can define a custom "cut" / "paste" string.
+# Example:
+# WARN_LINE_FORMAT = "'vi $file +$line'"
+# See also: WARN_FORMAT
+# The default value is: at line $line of file $file.
+
+WARN_LINE_FORMAT = "at line $line of file $file"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning and error
+# messages should be written. If left blank the output is written to standard
+# error (stderr). In case the file specified cannot be opened for writing the
+# warning and error messages are written to standard error. When as file - is
+# specified the warning and error messages are written to standard output
+# (stdout).
+
+WARN_LOGFILE =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag is used to specify the files and/or directories that contain
+# documented source files. You may enter file names like myfile.cpp or
+# directories like /usr/src/myproject. Separate the files or directories with
+# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
+# Note: If this tag is empty the current directory is searched.
+
+INPUT = @DOXY_SOURCE_DIRECTORY@ \
+ @DOXY_DOCS_DIRECTORY@ \
+ @PROJECT_SOURCE_DIR@/README.md
+
+# This tag can be used to specify the character encoding of the source files
+# that Doxygen parses. Internally Doxygen uses the UTF-8 encoding. Doxygen uses
+# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
+# documentation (see:
+# https://www.gnu.org/software/libiconv/) for the list of possible encodings.
+# See also: INPUT_FILE_ENCODING
+# The default value is: UTF-8.
+
+INPUT_ENCODING = UTF-8
+
+# This tag can be used to specify the character encoding of the source files
+# that Doxygen parses. The INPUT_FILE_ENCODING tag can be used to specify
+# character encoding on a per file pattern basis. Doxygen will compare the file
+# name with each pattern and apply the encoding instead of the default
+# INPUT_ENCODING if there is a match. The character encodings are a list of the
+# form: pattern=encoding (like *.php=ISO-8859-1).
+# See also: INPUT_ENCODING for further information on supported encodings.
+
+INPUT_FILE_ENCODING =
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
+# *.h) to filter out the source-files in the directories.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# read by Doxygen.
+#
+# 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, *.cxxm,
+# *.cpp, *.cppm, *.ccm, *.c++, *.c++m, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl,
+# *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, *.h++, *.ixx, *.l, *.cs, *.d,
+# *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to
+# be provided as Doxygen C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08,
+# *.f18, *.f, *.for, *.vhd, *.vhdl, *.ucf, *.qsf and *.ice.
+
+FILE_PATTERNS = *.h \
+ *.hpp \
+ *.md
+
+# The RECURSIVE tag can be used to specify whether or not subdirectories should
+# be searched for input files as well.
+# The default value is: NO.
+
+RECURSIVE = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should be
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+#
+# Note that relative paths are relative to the directory from which Doxygen is
+# run.
+
+EXCLUDE =
+
+# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
+# from the input.
+# The default value is: NO.
+
+EXCLUDE_SYMLINKS = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories for example use the pattern */test/*
+
+EXCLUDE_PATTERNS =
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# ANamespace::AClass, ANamespace::*Test
+
+EXCLUDE_SYMBOLS =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or directories
+# that contain example code fragments that are included (see the \include
+# command).
+
+EXAMPLE_PATH =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank all
+# files are included.
+
+EXAMPLE_PATTERNS = *
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude commands
+# irrespective of the value of the RECURSIVE tag.
+# The default value is: NO.
+
+EXAMPLE_RECURSIVE = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or directories
+# that contain images that are to be included in the documentation (see the
+# \image command).
+
+IMAGE_PATH =
+
+# The INPUT_FILTER tag can be used to specify a program that Doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command:
+#
+#
+#
+# where is the value of the INPUT_FILTER tag, and is the
+# name of an input file. Doxygen will then use the output that the filter
+# program writes to standard output. If FILTER_PATTERNS is specified, this tag
+# will be ignored.
+#
+# Note that the filter must not add or remove lines; it is applied before the
+# code is scanned, but not when the output code is generated. If lines are added
+# or removed, the anchors will not be placed correctly.
+#
+# Note that Doxygen will use the data processed and written to standard output
+# for further processing, therefore nothing else, like debug statements or used
+# commands (so in case of a Windows batch file always use @echo OFF), should be
+# written to standard output.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# properly processed by Doxygen.
+
+INPUT_FILTER =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form: pattern=filter
+# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
+# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
+# patterns match the file name, INPUT_FILTER is applied.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# properly processed by Doxygen.
+
+FILTER_PATTERNS =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will also be used to filter the input files that are used for
+# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# The default value is: NO.
+
+FILTER_SOURCE_FILES = NO
+
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
+# it is also possible to disable source filtering for a specific pattern using
+# *.ext= (so without naming a filter).
+# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
+
+FILTER_SOURCE_PATTERNS =
+
+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
+# is part of the input, its contents will be placed on the main page
+# (index.html). This can be useful if you have a project on for instance GitHub
+# and want to reuse the introduction page also for the Doxygen output.
+
+USE_MDFILE_AS_MAINPAGE = @PROJECT_SOURCE_DIR@/README.md
+
+# If the IMPLICIT_DIR_DOCS tag is set to YES, any README.md file found in sub-
+# directories of the project's root, is used as the documentation for that sub-
+# directory, except when the README.md starts with a \dir, \page or \mainpage
+# command. If set to NO, the README.md file needs to start with an explicit \dir
+# command in order to be used as directory documentation.
+# The default value is: YES.
+
+IMPLICIT_DIR_DOCS = YES
+
+# The Fortran standard specifies that for fixed formatted Fortran code all
+# characters from position 72 are to be considered as comment. A common
+# extension is to allow longer lines before the automatic comment starts. The
+# setting FORTRAN_COMMENT_AFTER will also make it possible that longer lines can
+# be processed before the automatic comment starts.
+# Minimum value: 7, maximum value: 10000, default value: 72.
+
+FORTRAN_COMMENT_AFTER = 72
+
+#---------------------------------------------------------------------------
+# Configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
+# generated. Documented entities will be cross-referenced with these sources.
+#
+# Note: To get rid of all source code in the generated output, make sure that
+# also VERBATIM_HEADERS is set to NO.
+# The default value is: NO.
+
+SOURCE_BROWSER = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body of functions,
+# multi-line macros, enums or list initialized variables directly into the
+# documentation.
+# The default value is: NO.
+
+INLINE_SOURCES = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES will instruct Doxygen to hide any
+# special comment blocks from generated source code fragments. Normal C, C++ and
+# Fortran comments will always remain visible.
+# The default value is: YES.
+
+STRIP_CODE_COMMENTS = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
+# entity all documented functions referencing it will be listed.
+# The default value is: NO.
+
+REFERENCED_BY_RELATION = NO
+
+# If the REFERENCES_RELATION tag is set to YES then for each documented function
+# all documented entities called/used by that function will be listed.
+# The default value is: NO.
+
+REFERENCES_RELATION = NO
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
+# to YES then the hyperlinks from functions in REFERENCES_RELATION and
+# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
+# link to the documentation.
+# The default value is: YES.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
+# source code will show a tooltip with additional information such as prototype,
+# brief description and links to the definition and documentation. Since this
+# will make the HTML file larger and loading of large files a bit slower, you
+# can opt to disable this feature.
+# The default value is: YES.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+SOURCE_TOOLTIPS = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code will
+# point to the HTML generated by the htags(1) tool instead of Doxygen built-in
+# source browser. The htags tool is part of GNU's global source tagging system
+# (see https://www.gnu.org/software/global/global.html). You will need version
+# 4.8.6 or higher.
+#
+# To use it do the following:
+# - Install the latest version of global
+# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file
+# - Make sure the INPUT points to the root of the source tree
+# - Run doxygen as normal
+#
+# Doxygen will invoke htags (and that will in turn invoke gtags), so these
+# tools must be available from the command line (i.e. in the search path).
+#
+# The result: instead of the source browser generated by Doxygen, the links to
+# source code will now point to the output of htags.
+# The default value is: NO.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+USE_HTAGS = NO
+
+# If the VERBATIM_HEADERS tag is set the YES then Doxygen will generate a
+# verbatim copy of the header file for each class for which an include is
+# specified. Set to NO to disable this.
+# See also: Section \class.
+# The default value is: YES.
+
+VERBATIM_HEADERS = YES
+
+# If the CLANG_ASSISTED_PARSING tag is set to YES then Doxygen will use the
+# clang parser (see:
+# http://clang.llvm.org/) for more accurate parsing at the cost of reduced
+# performance. This can be particularly helpful with template rich C++ code for
+# which Doxygen's built-in parser lacks the necessary type information.
+# Note: The availability of this option depends on whether or not Doxygen was
+# generated with the -Duse_libclang=ON option for CMake.
+# The default value is: NO.
+
+CLANG_ASSISTED_PARSING = NO
+
+# If the CLANG_ASSISTED_PARSING tag is set to YES 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.
+# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
+
+CLANG_ADD_INC_PATHS = YES
+
+# If clang assisted parsing is enabled you can provide the compiler with command
+# line options that you would normally use when invoking the compiler. Note that
+# the include paths will already be set by Doxygen for the files and directories
+# specified with INPUT and INCLUDE_PATH.
+# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
+
+CLANG_OPTIONS =
+
+# If clang assisted parsing is enabled you can provide the clang parser with the
+# path to the directory containing a file called compile_commands.json. This
+# file is the compilation database (see:
+# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the
+# 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
+# generated with the -Duse_libclang=ON option for CMake.
+
+CLANG_DATABASE_PATH =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
+# compounds will be generated. Enable this if the project contains a lot of
+# classes, structs, unions or interfaces.
+# The default value is: YES.
+
+ALPHABETICAL_INDEX = YES
+
+# The IGNORE_PREFIX tag can be used to specify a prefix (or a list of prefixes)
+# that should be ignored while generating the index headers. The IGNORE_PREFIX
+# tag works for classes, function and member names. The entity will be placed in
+# the alphabetical list under the first letter of the entity name that remains
+# after removing the prefix.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES, Doxygen will generate HTML output
+# The default value is: YES.
+
+GENERATE_HTML = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_OUTPUT = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
+# generated HTML page (for example: .htm, .php, .asp).
+# The default value is: .html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FILE_EXTENSION = .html
+
+# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
+# each generated HTML page. If the tag is left blank Doxygen will generate a
+# standard header.
+#
+# To get valid HTML the header file that includes any scripts and style sheets
+# that Doxygen needs, which is dependent on the configuration options used (e.g.
+# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
+# default header using
+# doxygen -w html new_header.html new_footer.html new_stylesheet.css
+# YourConfigFile
+# and then modify the file new_header.html. See also section "Doxygen usage"
+# for information on how to generate the default header that Doxygen normally
+# uses.
+# Note: The header is subject to change so you typically have to regenerate the
+# default header when upgrading to a newer version of Doxygen. For a description
+# of the possible markers and block names see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_HEADER =
+
+# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
+# generated HTML page. If the tag is left blank Doxygen will generate a standard
+# footer. See HTML_HEADER for more information on how to generate a default
+# footer and what special commands can be used inside the footer. See also
+# section "Doxygen usage" for information on how to generate the default footer
+# that Doxygen normally uses.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FOOTER =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
+# sheet that is used by each HTML page. It can be used to fine-tune the look of
+# the HTML output. If left blank Doxygen will generate a default style sheet.
+# See also section "Doxygen usage" for information on how to generate the style
+# sheet that Doxygen normally uses.
+# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
+# it is more robust and this tag (HTML_STYLESHEET) will in the future become
+# obsolete.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_STYLESHEET = @DOXY_CSS_DIRECTORY@/doxygen-awesome.css
+
+# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# cascading style sheets that are included after the standard style sheets
+# created by Doxygen. Using this option one can overrule certain style aspects.
+# This is preferred over using HTML_STYLESHEET since it does not replace the
+# standard style sheet and is therefore more robust against future updates.
+# Doxygen will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list).
+# Note: Since the styling of scrollbars can currently not be overruled in
+# Webkit/Chromium, the styling will be left out of the default doxygen.css if
+# one or more extra stylesheets have been specified. So if scrollbar
+# customization is desired it has to be added explicitly. For an example see the
+# documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_STYLESHEET =
+
+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the HTML output directory. Note
+# that these files will be copied to the base HTML output directory. Use the
+# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
+# files will be copied as-is; there are no commands or markers available.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_FILES =
+
+# The HTML_COLORSTYLE tag can be used to specify if the generated HTML output
+# should be rendered with a dark or light theme.
+# Possible values are: LIGHT always generates light mode output, DARK always
+# generates dark mode output, AUTO_LIGHT automatically sets the mode according
+# to the user preference, uses light mode if no preference is set (the default),
+# AUTO_DARK automatically sets the mode according to the user preference, uses
+# dark mode if no preference is set and TOGGLE allows a user to switch between
+# light and dark mode via a button.
+# The default value is: AUTO_LIGHT.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE = AUTO_DARK
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
+# will adjust the colors in the style sheet and background images according to
+# this color. Hue is specified as an angle on a color-wheel, see
+# https://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
+# purple, and 360 is red again.
+# Minimum value: 0, maximum value: 359, default value: 220.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_HUE = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
+# in the HTML output. For a value of 0 the output will use gray-scales only. A
+# value of 255 will produce the most vivid colors.
+# Minimum value: 0, maximum value: 255, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_SAT = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
+# luminance component of the colors in the HTML output. Values below 100
+# gradually make the output lighter, whereas values above 100 make the output
+# darker. The value divided by 100 is the actual gamma applied, so 80 represents
+# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
+# change the gamma.
+# Minimum value: 40, maximum value: 240, default value: 80.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_GAMMA = 80
+
+# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML
+# documentation will contain a main index with vertical navigation menus that
+# are dynamically created via JavaScript. If disabled, the navigation index will
+# 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,
+# like the Qt help browser.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_MENUS = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_SECTIONS = NO
+
+# If the HTML_CODE_FOLDING tag is set to YES then classes and functions can be
+# dynamically folded and expanded in the generated HTML source code.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_CODE_FOLDING = YES
+
+# If the HTML_COPY_CLIPBOARD tag is set to YES then Doxygen will show an icon in
+# the top right corner of code and text fragments that allows the user to copy
+# its content to the clipboard. Note this only works if supported by the browser
+# and the web page is served via a secure context (see:
+# https://www.w3.org/TR/secure-contexts/), i.e. using the https: or file:
+# protocol.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COPY_CLIPBOARD = YES
+
+# Doxygen stores a couple of settings persistently in the browser (via e.g.
+# cookies). By default these settings apply to all HTML pages generated by
+# Doxygen across all projects. The HTML_PROJECT_COOKIE tag can be used to store
+# the settings under a project specific key, such that the user preferences will
+# be stored separately.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_PROJECT_COOKIE =
+
+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
+# shown in the various tree structured indices initially; the user can expand
+# and collapse entries dynamically later on. Doxygen will expand the tree to
+# such a level that at most the specified number of entries are visible (unless
+# a fully collapsed tree already exceeds this amount). So setting the number of
+# entries 1 will produce a full collapsed tree by default. 0 is a special value
+# representing an infinite number of entries and will result in a full expanded
+# tree by default.
+# Minimum value: 0, maximum value: 9999, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_INDEX_NUM_ENTRIES = 100
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files will be
+# generated that can be used as input for Apple's Xcode 3 integrated development
+# environment (see:
+# https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To
+# create a documentation set, Doxygen will generate a Makefile in the HTML
+# output directory. Running make will produce the docset in that directory and
+# running make install will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
+# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy
+# genXcode/_index.html for more information.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_DOCSET = NO
+
+# This tag determines the name of the docset feed. A documentation feed provides
+# an umbrella under which multiple documentation sets from a single provider
+# (such as a company or product suite) can be grouped.
+# The default value is: Doxygen generated docs.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_FEEDNAME = "Doxygen generated docs"
+
+# This tag determines the URL of the docset feed. A documentation feed provides
+# an umbrella under which multiple documentation sets from a single provider
+# (such as a company or product suite) can be grouped.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_FEEDURL =
+
+# This tag specifies a string that should uniquely identify the documentation
+# set bundle. This should be a reverse domain-name style string, e.g.
+# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_BUNDLE_ID = org.doxygen.Project
+
+# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+# The default value is: org.doxygen.Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_ID = org.doxygen.Publisher
+
+# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+# The default value is: Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_NAME = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES then Doxygen generates three
+# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
+# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
+# on Windows. In the beginning of 2021 Microsoft took the original page, with
+# a.o. the download links, offline (the HTML help workshop was already many
+# years in maintenance mode). You can download the HTML help workshop from the
+# web archives at Installation executable (see:
+# http://web.archive.org/web/20160201063255/http://download.microsoft.com/downlo
+# ad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe).
+#
+# The HTML Help Workshop contains a compiler that can convert all HTML output
+# generated by Doxygen into a single compiled HTML file (.chm). Compiled HTML
+# files are now used as the Windows 98 help format, and will replace the old
+# Windows help format (.hlp) on all Windows platforms in the future. Compressed
+# HTML files also contain an index, a table of contents, and you can search for
+# words in the documentation. The HTML workshop also contains a viewer for
+# compressed HTML files.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_HTMLHELP = NO
+
+# The CHM_FILE tag can be used to specify the file name of the resulting .chm
+# file. You can add a path in front of the file if the result should not be
+# written to the html output directory.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_FILE =
+
+# The HHC_LOCATION tag can be used to specify the location (absolute path
+# including file name) of the HTML help compiler (hhc.exe). If non-empty,
+# Doxygen will try to run the HTML help compiler on the generated index.hhp.
+# The file has to be specified with full path.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+HHC_LOCATION =
+
+# The GENERATE_CHI flag controls if a separate .chi index file is generated
+# (YES) or that it should be included in the main .chm file (NO).
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+GENERATE_CHI = NO
+
+# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
+# and project file content.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_INDEX_ENCODING =
+
+# The BINARY_TOC flag controls whether a binary table of contents is generated
+# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
+# enables the Previous and Next buttons.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+BINARY_TOC = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members to
+# the table of contents of the HTML help documentation and to the tree view.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+TOC_EXPAND = NO
+
+# The SITEMAP_URL tag is used to specify the full URL of the place where the
+# generated documentation will be placed on the server by the user during the
+# deployment of the documentation. The generated sitemap is called sitemap.xml
+# and placed on the directory specified by HTML_OUTPUT. In case no SITEMAP_URL
+# is specified no sitemap is generated. For information about the sitemap
+# protocol see https://www.sitemaps.org
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+SITEMAP_URL =
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
+# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
+# (.qch) of the generated HTML documentation.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_QHP = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
+# the file name of the resulting .qch file. The path specified is relative to
+# the HTML output folder.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QCH_FILE =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
+# Project output. For more information please see Qt Help Project / Namespace
+# (see:
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace).
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_NAMESPACE = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
+# Help Project output. For more information please see Qt Help Project / Virtual
+# Folders (see:
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders).
+# The default value is: doc.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_VIRTUAL_FOLDER = doc
+
+# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
+# filter to add. For more information please see Qt Help Project / Custom
+# Filters (see:
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_NAME =
+
+# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see Qt Help Project / Custom
+# Filters (see:
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_ATTRS =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's filter section matches. Qt Help Project / Filter Attributes (see:
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_SECT_FILTER_ATTRS =
+
+# The QHG_LOCATION tag can be used to specify the location (absolute path
+# including file name) of Qt's qhelpgenerator. If non-empty Doxygen will try to
+# run qhelpgenerator on the generated .qhp file.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHG_LOCATION =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
+# generated, together with the HTML files, they form an Eclipse help plugin. To
+# install this plugin and make it available under the help contents menu in
+# Eclipse, the contents of the directory containing the HTML and XML files needs
+# to be copied into the plugins directory of eclipse. The name of the directory
+# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
+# After copying Eclipse needs to be restarted before the help appears.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_ECLIPSEHELP = NO
+
+# A unique identifier for the Eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have this
+# name. Each documentation set should have its own identifier.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
+
+ECLIPSE_DOC_ID = org.doxygen.Project
+
+# If you want full control over the layout of the generated HTML pages it might
+# be necessary to disable the index and replace it with your own. The
+# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
+# of each HTML page. A value of NO enables the index and the value YES disables
+# it. Since the tabs in the index contain the same information as the navigation
+# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+DISABLE_INDEX = NO
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information. If the tag
+# value is set to YES, a side panel will be generated containing a tree-like
+# index structure (just like the one that is generated for HTML Help). For this
+# to work a browser that supports JavaScript, DHTML, CSS and frames is required
+# (i.e. any modern browser). Windows users are probably better off using the
+# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
+# further fine tune the look of the index (see "Fine-tuning the output"). As an
+# example, the default style sheet generated by Doxygen has an example that
+# shows how to put an image at the root of the tree instead of the PROJECT_NAME.
+# Since the tree basically has the same information as the tab index, you could
+# consider setting DISABLE_INDEX to YES when enabling this option.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_TREEVIEW = NO
+
+# When both GENERATE_TREEVIEW and DISABLE_INDEX are set to YES, then the
+# FULL_SIDEBAR option determines if the side bar is limited to only the treeview
+# area (value NO) or if it should extend to the full height of the window (value
+# YES). Setting this to YES gives a layout similar to
+# https://docs.readthedocs.io with more room for contents, but less room for the
+# project logo, title, and description. If either GENERATE_TREEVIEW or
+# DISABLE_INDEX is set to NO, this option has no effect.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FULL_SIDEBAR = NO
+
+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
+# Doxygen will group on one line in the generated HTML documentation.
+#
+# Note that a value of 0 will completely suppress the enum values from appearing
+# in the overview section.
+# Minimum value: 0, maximum value: 20, default value: 4.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+ENUM_VALUES_PER_LINE = 4
+
+# When the SHOW_ENUM_VALUES tag is set doxygen will show the specified
+# enumeration values besides the enumeration mnemonics.
+# The default value is: NO.
+
+SHOW_ENUM_VALUES = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
+# to set the initial width (in pixels) of the frame in which the tree is shown.
+# Minimum value: 0, maximum value: 1500, default value: 250.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+TREEVIEW_WIDTH = 250
+
+# If the EXT_LINKS_IN_WINDOW option is set to YES, Doxygen will open links to
+# external symbols imported via tag files in a separate window.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+EXT_LINKS_IN_WINDOW = NO
+
+# If the OBFUSCATE_EMAILS tag is set to YES, Doxygen will obfuscate email
+# addresses.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+OBFUSCATE_EMAILS = YES
+
+# 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
+# the HTML documentation. When you change the font size after a successful
+# Doxygen run you need to manually remove any form_*.png images from the HTML
+# output directory to force them to be regenerated.
+# Minimum value: 8, maximum value: 50, default value: 10.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_FONTSIZE = 10
+
+# 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
+# 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
+# installed or if you want to formulas look prettier in the HTML output. When
+# enabled you may also need to install MathJax separately and configure the path
+# to it using the MATHJAX_RELPATH option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+USE_MATHJAX = NO
+
+# With MATHJAX_VERSION it is possible to specify the MathJax version to be used.
+# Note that the different versions of MathJax have different requirements with
+# regards to the different settings, so it is possible that also other MathJax
+# settings have to be changed when switching between the different MathJax
+# versions.
+# Possible values are: MathJax_2 and MathJax_3.
+# The default value is: MathJax_2.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_VERSION = MathJax_2
+
+# When MathJax is enabled you can set the default output format to be used for
+# the MathJax output. For more details about the output format see MathJax
+# version 2 (see:
+# http://docs.mathjax.org/en/v2.7-latest/output.html) and MathJax version 3
+# (see:
+# http://docs.mathjax.org/en/latest/web/components/output.html).
+# Possible values are: HTML-CSS (which is slower, but has the best
+# compatibility. This is the name for Mathjax version 2, for MathJax version 3
+# this will be translated into chtml), NativeMML (i.e. MathML. Only supported
+# for MathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This
+# is the name for Mathjax version 3, for MathJax version 2 this will be
+# translated into HTML-CSS) and SVG.
+# The default value is: HTML-CSS.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_FORMAT = HTML-CSS
+
+# When MathJax is enabled you need to specify the location relative to the HTML
+# output directory using the MATHJAX_RELPATH option. The destination directory
+# should contain the MathJax.js script. For instance, if the mathjax directory
+# is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
+# Content Delivery Network so you can quickly see the result without installing
+# MathJax. However, it is strongly recommended to install a local copy of
+# MathJax from https://www.mathjax.org before deployment. The default value is:
+# - in case of MathJax version 2: https://cdn.jsdelivr.net/npm/mathjax@2
+# - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_RELPATH = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/
+
+# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+# extension names that should be enabled during MathJax rendering. For example
+# for MathJax version 2 (see
+# https://docs.mathjax.org/en/v2.7-latest/tex.html#tex-and-latex-extensions):
+# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+# For example for MathJax version 3 (see
+# http://docs.mathjax.org/en/latest/input/tex/extensions/index.html):
+# MATHJAX_EXTENSIONS = ams
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_EXTENSIONS =
+
+# The MATHJAX_CODEFILE tag can be used to specify a file with JavaScript pieces
+# of code that will be used on startup of the MathJax code. See the MathJax site
+# (see:
+# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an
+# example see the documentation.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_CODEFILE =
+
+# When the SEARCHENGINE tag is enabled Doxygen will generate a search box for
+# the HTML output. The underlying search engine uses JavaScript and DHTML and
+# should work on any modern browser. Note that when using HTML help
+# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
+# there is already a search function so this one should typically be disabled.
+# For large projects the JavaScript based search engine can be slow, then
+# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
+# search using the keyboard; to jump to the search box use + S
+# (what the is depends on the OS and browser, but it is typically
+# , /